习题2-3改写二分搜索算法
Posted g0rez
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题2-3改写二分搜索算法相关的知识,希望对你有一定的参考价值。
设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。
template <class T>
int binarySearch(T a[],const T&x,int left,int right,int &i,int &j){
int middle;
while(left<=right){
middle=(left+right)/2;
if(x==a[middle]){i=j=middle;return 1;}
if(x>a[middle]) left=middle+1;
else right=middle-1;
}
i=right;
j=left;
return 0;
}
以上是关于习题2-3改写二分搜索算法的主要内容,如果未能解决你的问题,请参考以下文章