1、二分查找
①递归
int binSort(int* arr, int left, int right, int key) {
if (left > right) {
return NULL;
}
int mid = (left + right) / 2;
if (arr[mid] == key) {
return mid;
}
if (key > arr[mid]) {
binSort(arr, mid + 1, right, key);
}
else {
binSort(arr, left, mid - 1, key);
}
}
②迭代
int binSort(int* arr, int left, int right, int key) {
while (left <= right) {//注意是<=,而不是 <
int mid = left + (right - left) / 2;
if (arr[mid] == key) {
return mid;
}
if (key > arr[mid]) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return NULL;
}
待后续补充



