一:折半查找:
public int rank(int key, int[] arr){
// 要求数组是有序的
int min = 0;
int max = arr.Length - 1;
while(min <= max){
// 被查找的内容要么不在要么在arr[min ,,,, max]之中
int mid = min + (max - min) / 2;
if(key < arr[min]){
max = mid - 1;
}else if(key > arr[mid]){
min = mid + 1;
}else{
return mid;
}
}
return -1;
}
浙公网安备 33010602011771号