电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

二分搜索算法实验报告

二分搜索算法实验报告_第1页
1/13
二分搜索算法实验报告_第2页
2/13
二分搜索算法实验报告_第3页
3/13
实验一 二分搜索算法实验报告一.实验目得1、 理解分治算法得概念和基本要素;2、 理解递归得概念;3、 掌握设计有效算法得分治策略;4、通过二分搜索技术学习分治策略设计技巧;二、实验内容及要求1、 使用二分搜索算法查找任意 N 个有序数列中得指定元素。2、 通过上机实验进行算法实现。3、 保存和打印出程序得运行结果,并结合程序进行分析,上交实验报告。4、 至少使用两种方法进行编程。三、实验原理二分搜索算法也称为折半查找法,她充分利用了元素间得次序关系,采纳分治策略,可在最坏得情况下用 O(l o g n)完成搜索任务。【基本思想】将 n 个元素分成个数大致相同得两半,取 a[n/2]与欲查找得 x 作比较,假如x=a[n/2]则找到x,算法终止。假如 x<a[n/2],则我们只要在数组a得左半部继续搜索 x(这里假设数组元素呈升序排列)。假如 x>a[n/2],则我们只要在数组 a 得右半部继续搜索 x。二分搜索法得应用极其广泛,而且她得思想易于理解。第一个二分搜索算法早在 1 9 46 年就出现了,但就就是第一个完全正确得二分搜索算法直到 1 9 6 2年才出现。B ent le y 在她得著作《Writing C orre c t Pro gr am s》中写道,90%得计算机专家不能在 2 小时内写出完全正确得二分搜索算法。问题得关键在于准确地制定各次查找范围得边界以及终止条件得确定,正确地归纳奇偶数得各种情况,其实整理后可以发现她得具体算法就就是很直观得。 方法一:直接查找 穷举法遍历 方法二:递归查找#include<s tdio、h>#d e f i ne MA X 3 0in t Bi n a ry Search(i nt a[],int &x,int left,in t rig ht){ i f(le f t>r ig ht){ re t ur n -1; } e l se{ le f t=(l eft+r i ght)/2; i f(x==a[lef t]) return left; e l se { i f(x>a[l e f t]) BinarySearc h(a,x,le ft+1,right); else Bi n a r yS e a r ch(a,x,l e f t*2-ri g h t,l ef t+1); } }}m a in(){i nt a[MAX]; int f o u nd,x,n,i,j,p; pri n t f("输得个数\n"); sca n f("%d",&n); pri n t f("数组数据\n"); f o r(i=0;i<n;i++) { s c a n f("%d",&a[i]); } for (i=0;ia[...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

二分搜索算法实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部