首页 > 代码库 > [数据结构]二分查找
[数据结构]二分查找
1,二分查找:
点击打开链接
[cpp] view plaincopy
- int Find(int arr[], int key,int length)
- {
- assert(arr!=NULL&&length>0);
- int low=0,high=length,mid;
- while(low<=high)
- {
- mid=(low+high)/2;
- if(arr[mid]==key) return mid;
- else
- {
- if(arr[mid]>key) high=mid-1;
- else low=mid+1;
- }
- }
- return-1;
- }
假定集合中油重复的元素,找到某个数首次出现的位置
[cpp] view plaincopy
- int find(int * arr , int length, int key){
- int low = 0,high = length-1,mid;
- while(low <= high){
- mid = (low + high)/2;
- if (arr[mid] < key){
- low = mid + 1;
- }else if(arr[mid] > key){
- high = mid - 1;
- }else{
- if (mid == 0) return mid;
- if (mid >= 1 && arr[mid-1] != key) return mid;
- else high = mid - 1;
- }
- }
- return -1;
- }
[数据结构]二分查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。