实验二-折半查找算法设计(共4页).doc
《实验二-折半查找算法设计(共4页).doc》由会员分享,可在线阅读,更多相关《实验二-折半查找算法设计(共4页).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验二 折半查找算法设计题目:折半查找算法设计问题描述:(1)分析掌握折半查找算法思想,在此基础上,设计出递归算法和循环结构两种实现方法的折半查找函数。(2)编写程序实现:在保存于数组的10000个有序数据元素中查找数据元素x是否存在。数据元素x要包含两种情况:一种是数据元素x包含在数组中;另一种是数据元素x不包含在数组中(3)数组中数据元素的有序化既可以初始赋值时实现,也可以设计一个排序函数实现。(4)根据两种方法的实际运行时间,进行两种方法时间效率的分析对比。基本要求:(1)10000个数据可以初始赋值时实现,也可以调用系统的随机函数,再设计一个排序函数实现。(2
2、)两种方法时间效率的分析对比可以有两种方法,一种是理论分析方法,一种是实际记录运行时间。(3)提交实验报告。测试数据:运行算法时,当输入的数据小于10000,例如输入9999时,显示该数据在数组中,下标为9998,并且分别显示递归和循环结构下的时间;当输入的数据大于10000时,例如输入20000时,显示这个这个数据不再该数组中。算法思想:设有数组a中元素按从小到大的次序排列,a的下界下标为low, 上界下标为high,首先计算出a的中间位置下标mid=(low+high)/2,1.递归算法思想:比较x和amid,若x=amid,则查找成功;若xamid,则随后调用算法自身在下标为mid+1,
3、上界下标为high的区间继续查找。当查找区间小于等于0时,查找过程结束。2.循环结构思想:用while(low = high)控制循环,比较x和amid,若x=amid,则查找成功;若xamid,则随后在下标为mid+1,上界下标为high的区间继续查找。当查找区间小于等于0时,查找过程结束。模块划分:1.头文件time.h中包含time()和difftime(end,start)函数,分别实现取系统当前时间和end减去start的时间差; 2.头文件stdlib.h中包含rand()函数,实现随机数的生成;3.void list(int a)实现对随机数从小到大的排序;4.int Searc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 折半 查找 算法 设计
限制150内