




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学矿业工程学院实验报告课程名称 计算机软件技术基础姓名 jdsljf 班级 333555班学号 855554454 日期 2013年10月成绩 教师 jgkhkl一 实验名称 对半查找与排序二 实验目的(1) 了解查找的基本概念,重点掌握线性查找、对分查找、分块查找、二叉排序树查找、哈希表查找的基本方法与原理;(2) 掌握对分查找对半排序使用C+编程的基本实现方法;(3) 了解对半查找与对半排序的优缺点;(4) 了解计算机的各种排序方法,重点掌握对半排序;三 实验流程图开始输入所需查找的数据查找的数据=第N/2个数据Y输出该数所在位置N结束查找的数据第N/2个数据N要寻找的数据在第0个与第N/2-1个之间CHONGXINCHONGXIN Y要寻找的数据在第N/2个与第N-1个之间 对半查找法的核心算法描述如下:若从一组由小到大排序的N个数据中寻找某一特定的数据,首先将这一特定的数据与这组数据中第N/2个数据相比较。若该数据不等于要寻找的数据,则判断该数据与要寻找数据的大小,假如第N/2个数据大于要寻找的数据,则要寻找的数据范围在第0个与第N/2-1个数据之间,否则要寻找的数据范围在第N/2+1和第N-1个数据之间,这样就可以将寻找数据的范围缩小一半,然后循环将要寻找的数据与新的数据范围的中间的那个数据比较,则又可以将寻找范围缩小一半,依此类推,所以最多的循环次数为log2N. 1.打开C+编程软件,自选所需控件和设计最终界面。界面如下:2.输入下列算法#includeint binary(int array,int n,int number)/从数组array中寻找数值为number的数,数组有n个元素int low=0,high=n-1,mid;while(low=high) mid=(low+high)/2;if(numberarraymid)low=mid+1;elsereturn mid;return -1;void main()int a=2,4,6,8,10,12,14,16,18,20,22,24;int num;coutnum;int index=binary(a,sizeof(a)/sizeof(a0),num);if(index!=-1)cout该数在数组中的序号为:indexendl;elsecout数组中没有该元素n;3.调试运行 对分插入排序的核心算法描述如下:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。二分查找算法初始状态:假设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值,初始时,令low=0,high=n-1,mid=(low+high)/2让key与mid指向的记录比较。若key=rmid.key,查找成功,算法结束,若keyrmid.key,则low=mid+1。重复上述操作,直至lowhigh时,查找失败。二分插入排序的基本操作是在一个有序表中进行查找和插入,这个“查找”操作可利用“折半查找来实现,由此进行的插入排序称之为折半插入排序。1.打开C+编程软件,自选所需控件和设计最终界面。界面如下:2.输入下列算法#include #include using namespace std; void bsort(char *arr,int count) int i,j,low,mid,high; char t; for(i=1;icount;i+)/ 对第i 个元素 t=arri; low=0; high=i-1; while(low=high) / low 为插入的正确位置 mid=(low+high)/2; if(t=low;j-) arrj+1=arrj; arrlow=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(ai); system(PAUSE); return EXIT_SUCCESS;在C+中输入上面的代码,进行编程。3.调试运行四 试验小结结果分析:所编程序在一定程度上存在有缺陷,例如在查找时时只能在有序数列中进行查找,所以需要对所给数列先进行排序,之后在进行查找工作,所编程序的优点是简洁明了,运算速度快,方便理解。收获:通过本次实验,我对C+这门语言重新进行了学习同时又对计算机程序的语言有了崭新的认识,这次上机实验,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从计算机软件技术基础这门课程开始,已发现程序设计的乐趣,在温习C+语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 在实际操作过程中犯的一些错误还会有意外的收获,感觉上机很有意思。在具体操作中对这学期所学的软件技术的理论知识得到巩固,达到了上机的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Lesson 9说课稿-2025-2026学年小学英语五年级下册清华大学版
- 1.1等腰三角形(第二课时)说课稿2024-2025学年北师大版数学 八年级下册
- 2.2.2.2两栖动物和爬行动物说课稿-2024-2025学年人教版七年级生物上册
- 2024-2025学年高中地理上学期第十周《气压带和风带》说课稿 新人教版必修1
- 湖南省茶陵县高中英语 Unit 3 Tomorrows World Task说课稿 牛津译林版必修4
- 2025《临时物业服务合同》
- 2025高级管理人员停薪留职合同模板
- 2025年合同终止劳动合同的情形解析
- 机械厂证照管理制度
- 人教版高中历史必修2第二单元第6课 殖民扩张与世界市场的拓展 教学设计
- 2025第三季度作风建设党课以忠诚廉洁担当的政治品格奋力书写高质量发展新答卷
- 《2025新版检验检测机构管理评审报告》
- 2025劳动教育考试试题及答案
- 江苏省南通市如皋市2025-2026学年高三上学期开学考试数学试卷
- 宠物急救标准化流程
- 焊工考试理论考试题库及答案
- 低钾血症护理常规业务学习
- 云原生压测技术-洞察及研究
- 送货服务方案
- 关联交易贷款管理办法
- 2025年中国AMOLED半导体显示面板行业发展前景预测及投资战略研究报告
评论
0/150
提交评论