二分查找递归和非递归

来源:互联网 发布:pymongo 遍历大量数据 编辑:程序博客网 时间:2024/05/18 19:39
//二分查找递归
int BinarySearch(int* array,int left,int right, int k){
int mid;
if (left <= right){
mid = (right - left) / 2;
if (array[mid] == k)
return mid;
else if (array[mid]>k){
return BinarySearch(array, mid+1, right, k);
}
else{
return BinarySearch(array, left, mid-1, k);
}
}
else
return -1;

}

//二分查找非递归
int BinarySearchN(int* array, int len, int k){
int left = 0, right = len - 1;
int mid;
while (left <= right){
mid = (right - left) / 2;
if (array[mid] == k)
return mid;
else if (array[mid] > k)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}

0 1
原创粉丝点击