二分查找(算法)

前提:arr数组已经排序。实现目的:查询首次与flag相等的下标
1
public int search(int arr[],int flag){ 2 3 int low = 0; 4 int high = arr.length-1; 5 int index = -1;//返回下标 6 7 while(low<=high){ 8 int mid = (low+high)/2; 9 if(arr[mid]==flag){ 10 index = mid; 11 high = mid - 1; //可能重复数据,取最小下标 12 }else if(arr[mid]<flag){ 13 low = mid + 1; 14 }else{ 15 high = mid - 1; 16 } 17 } 18 return index; 19 20 }
posted @ 2022-01-05 14:33  Q子  阅读(32)  评论(0)    收藏  举报