二分查找的递归与迭代实现

来源:互联网 发布:美图淘宝图片 编辑:程序博客网 时间:2024/05/16 16:56
//递归版本int BinarySearch (int[] a, int low, int high, int searchValue){if (high < low)return -1;int mid;mid = low + ((high - low) / 2);if (a [mid] > searchValue)return BinarySearch (a, low, mid-1, searchValue);else if (a [mid] < searchValue)return BinarySearch (a, mid + 1, high, searchValue);else return mid;} //迭代版本:int binary_search( int *a, int n, int key ){int mid, front=0, back=n-1;while (front<=back){mid = (front+back)/2;if (a[mid]==key)return mid;if (a[mid]<key)front = mid+1;else back = mid-1;}return -1;}

原创粉丝点击