本博客不再更新,更多精彩內容請訪問我的獨立博客
1.折半查找的非遞歸算法
int BinarySearch(SeqList &L,DataType x)
{
int high=L.n-1,low=0,mid;
while(low<=high){
mid=(low+high)/2;
if(x.key>L.data[mid].key) low=mid+1;
else if(x.key<L.data[mid].key high=mid-1;
else return mid;
}
return -1;
};
2.折半查找的遞歸算法
int BinarySearchRecur(SeqList& L,DataType x,int low,int high){
int mid=-1;
if(low<=high){
mid=(low+high)/2;
if(x.key>L.data[mid].key)
mid=BinarySearchRecur(L,x,mid+1,high);
else if(x.key<data[mid].key)
mid=BinarySearchRecur(l,x,low,mid-1);
}
return mid;
};