折半查找取整规则C语言中的“折半查找法”是什么?-创新互联

C语言中的“折半查找法”是什么?半搜索法也称为二进制搜索法。它充分利用了元素之间的顺序关系,采用分治策略,在最坏情况下可以用O(logn)完成搜索任务。例如,排序后的数据是151235647889123456。如果要查找12,请先将12与上述9个数字中的中间数字(64)进行比较,12<64按上述顺序排列,因此您找到的数据位于前半部分,即15123564,然后将12与前半部分的中间数字(12)进行比较。这样,您可以在两次搜索后找到一半。半搜索的目的是提高搜索效率折半查找取整规则 C语言中的“折
半查找法”是什么?c语言中的折半查找法是什么原理?

递归,分而治之,其思想是将n个元素分成大致相同数目的两半,取a[n/2]与要找到的X进行比较,如果X=a[n/2],则找到X,算法结束。如果X<A[n/2],那么我们只需要继续在数组a的左半部分搜索X(假设数组元素按升序排列)。如果X>A[n/2],那么我们只需要在数组a的右半部分继续搜索X。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网络空间、营销软件、网站建设、汨罗网站维护、网站推广。C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数?

根据需要,使用二分法在指定的数组中找到指定的数字。代码如下:#include<stdio。H>//在长度为len的数组a中查找n,如果找到则返回数组下标,并返回-1intsearch(inta[]intlen,INTN){intindex=-1intleft=0,right=len,mid=(left)}right)/2while(left<=right){if(n==a[mid]){index=midbreak}elseif(n>a[mid]){left=mid1mid=(leftright)/2}else{right=mid-1mid=(leftright)/2}returnindex}intmain(){intarray[]={5、8、13、17、23、25、29、50、53}//数组intlength=9//数组长度intaim=17//查找目标//输出搜索结果,search17array[]:3printf(“search%dinarray[:%d\n”,aim,search(array,length,aim))return0}


当前名称:折半查找取整规则C语言中的“折半查找法”是什么?-创新互联
当前地址:http://scyanting.com/article/ddejod.html