int BiSearch(DataType a[], int n, KeyType key) { int low = 0,high = n - 1; int mid; while(low <= high) { mid = (low + high) / 2; if (a[mid].key == key) { return mid; }else if (a[mid].key < key){ low = mid + 1; }else { high = mid - 1; } } return -1; } |
时间复杂度:大 O log 以 2 为底 n 的对数 |