二分查找(算法)
前提: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 }
浙公网安备 33010602011771号