好长时间没有接触C代码了,连一些基本的算法都给遗忘,前阵被问到二分查找法,当时凭记忆写了一些,现在回过头来看,错的不只一点点。这里把正确的代码记录一下:( 二分查找又叫折半查找)
int indexedBinarySearch(int a[], int key) {
int low = 0; int high = a.length-1;
while (low <= high) {
int mid = (low + high) >>> 1;
if (a[mid] < key)
low = mid + 1;
else if (a[mid] > key)
high = mid - 1;
else return mid;
}
return -(low + 1);
}