二分搜索大法

来源:互联网 发布:淘宝网上如何退货 编辑:程序博客网 时间:2024/06/08 04:17

二分搜索法,很流行 时间复杂度为 T(n)=O(logn),理解就是,一个数组,一头一尾两边往中间夹。看了代码就很好理解

//这个例子是在一个数组内找到相同的数字,返回索引int binarySearch(int *arr, int length, int key)//参数是 数组,长度,和查找值{int low=0;//头部int high = length - 1;//尾部int mid;//二分搜索最重要的中间if (high < low)//尾巴比头还小。扯淡呢return -1;while (high >= low){mid = low + ((high - low)>>1);if (arr[mid] == key)//找到了{return mid;}else if (arr[mid] > key){high = mid - 1;//说明不在高区,high重定义}else{low = mid + 1;//说明不再低区,low重定义}}return -1;}int main(){int arr[5] = { 5,3,1,4,2 };cout<<binarySearch(arr, 5, 1);    return 0;}


0 0
原创粉丝点击