一、二分查找
算法思想:将数组中间位置的元素与待查找元素比较。
如果待查找元素等于中间位置的元素,则查找成功;
如果待查找元素小于中间位置的元素,则在数组的前半部分继续查找;
如果待查找元素大于中间位置的元素,则在数组的后半部分继续查找。
//二分查找,若存在则返回下标,不存在则返回-1
int binarySearch(int a[], int n, int k){
int l = 0, r = n - 1;
while(l <= r){
int m = (r - l) / 2;
if(a[m] == k){
return m;
}else if(a[m] > k){
r = m - 1;
}else if(a[m] < k){
l = m + 1;
}
}
return -1;
}