- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术基础实验报告封面模板
中国矿业大学矿业工程学院
实验报告
课程名称 计算机软件技术基础查找与
掌握对分查找对半排序
了解对半查找与对半
了解计算机的各种排序重点掌握对半排序
Y
N
N
Y
对半查找法的核心算法描述如下:
从组由小到大排序的数据中寻找某一特定的数据,首先将这一特定的数据与这组数据中第/2个数据相比较。若数据不等于要寻找的数据,则要寻找数据的大小,第数据大于要寻找的数据,则寻找的数据范围在第与第1个数据之间,否则要寻找的数据范围在第第数据之间,这样就可以将寻找数据的范围缩小一半,然后循环将要寻找的数据与新的数据范围的中间的数据比较,则又可以将寻找范围缩小一半,……此所以最多的循环次数为2^N.
1.打开C++编程软件,自选所需控件和设计最终界面。界面如下:
2.输入下列算法
#includeiostream.h
int binary(int array[],int n,int number)
{int low=0,high=n-1,mid;
while(low=high)
{ mid=(low+high)/2;
if(numberarray[mid])
high=mid-1;
else if(numberarray[mid])
low=mid+1;
else
return mid;
}
return -1;
}
void main()
{int a[]={2,4,6,8,10,12,14,16,18,20,22,24};
int num;
cout请输入要寻找的数:;
cinnum;
int index=binary(a,sizeof(a)/sizeof(a[0]),num);
if(index!=-1)
cout该数在数组中的序号为:indexendl;
else
cout数组中没有该元素\n;
3.调试运行
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。二分查找算法初始状态:假设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值,初始时,令low=0,high=n-1,mid=(low+high)/2让key与mid指向的记录比较。若key==r[mid].key,查找成功,算法结束,若keyr[mid].key,则high=mid-1,若keyr[mid].key,则low=mid+1。重复上述操作,直至lowhigh时,查找失败。二分插入排序的基本操作是在一个有序表中进行查找和插入,这个“查找”操作可利用“折半查找来实现,由此进行的插入排序称之为折半插入排序。
1.打开C++编程软件,自选所需控件和设计最终界面。界面如下:
2.输入下列算法
#include cstdlib
#include iostream
using namespace std;
void bsort(char *arr,int count)
{
int i,j,low,mid,high;
char t;
{
t=arr[i];
low=0;
high=i-1;
while(low=high) // low 为插入的正确位置
{
mid=(low+high)/2;
if(tarr[mid])
high=mid-1;
else
low=mid+1;
}
for(j=i-1;j=low;j--)
arr[j+1]=arr[j];
arr[low]=t;
}
}
int main(int argc, char *argv[])
{
char a[]={k,k,x,a,w,f};
int x=6;
bsort(a,x);
for(int i=0;i6;i++)
putchar(a[i]);
system(PAUSE);
return EXIT_SUCCESS;
}
在C++中输入上面的代码,进行编程。
3.调试运行
结果分析:
您可能关注的文档
最近下载
- 创建三级医院知识培训幻灯片.ppt VIP
- 哈尔滨工业大学制造系统自动化大作业——搬运机械手运动控制系统设计规划.pdf
- 2024年四川省成都市中考物理真题卷(含答案与解析).pdf VIP
- 2024年湖南华容县事业单位招聘专业技术人员历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx
- 地灾工程施工质量验收用表.doc
- 《我们奇妙的世界》作业设计.docx VIP
- 燃气公司生产安全标准化手册资料.pdf VIP
- 土方运输方案完整版.docx
- 化工原理课程设计-丙烯丙烷精馏塔及其辅助设备的工艺设计.pdf
- 闽南师范大学2022-2023学年《植物生理学》期末考试试卷(A卷)含参考答案.docx
文档评论(0)