二分搜索算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二分搜索算法

问题描述:设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。并对自己的程序进行复杂性分析。

算法设计:已知a[0:n-1]是一个已排好序的数组,可以采用折半查找(二分查找)算法。如果搜索元素在数组中,则直接返回下表即可;否则比较搜索元素x与通过二分查找所得最终元素的大小,注意边界条件,从而计算出小于x的最大元素的位置i和大于x的最小元素位置j。

代码如下:

View Code

找数:

问题描述:设n个不同的整数排好序后存于a[0:n-1]中。若存在一个下标0≤i

算法设计:由于题目要求算法在最坏情况下的计算时间为O(logn),故不能一个一个元素判断。数组a 中的元素各不相同而且还是排好序的,如果存在多个下标0≤i

代码如下:

找数:

问题描述:设n个不同的整数排好序后存于a[0:n-1]中。若存在一个下标0≤i

算法设计:由于题目要求算法在最坏情况下的计算时间为O(logn),故不能一个一个元素判断。数组a 中的元素各不相同而且还是排好序的,如果存在多个下标0≤i

代码如

相关文档
最新文档