二分查找? 有序數(shù)組
int mid = (low + high)/2;
if (a [mid] == key) {
? ? ? ? ? ? ? ? Console.WriteLine ("find key,index", mid);
? ? ? ? ? ? ? ? ?return mid;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //返回值 mid
} else if (a[mid] > key) {
? ? ? ? ? ? ? ? ? high = mid - 1;
} else if (a[mid] < key) {
? ? ? ? ? ? ? ? ? low = mid + 1;
}
int[] arr = {1,2,3,4,5,6,7,8 };
int low = 0, hight = arr.Length - 1;? ? ? ? ? //定義第一位和最后一個的下標
int key = 7;
while (low <= hight) {
? ? ? ? ? ? ? ? ? ?int mid = (low + hight) / 2;
? ? ? ? ? ? ? ? ? ?if (arr[mid] == key) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Console.WriteLine ("find,index="+mid); ? ? ? ? //找到,下標為 :
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ?}else if (arr[mid]>key) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?hight = mid - 1;
? ? ? ? ? ? ? ? ? ?}else if (arr[mid]<key) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?low = mid + 1;
? ? ? ? ? ? ? ? ? ?}
}
if (low > hight){
? ? ?Console.WriteLine ("404");
}