自己实现的二分法查找
# include <stdio.h>
int binary_search(int a[], int n, int low, int high, int item) {
int mid;
for (int i=0; i<n; i++) {
mid = (low + high) / 2;
if (a[mid] == item) {
return mid;
} else if (a[mid] < item) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
int main(int argc, const char *argv[]) {
int a[5] = {10, 20, 30, 40, 50};
int mid = binary_search(a, 5, 0, 4, 10);
if (mid == -1) {
printf("Not found");
} else {
printf("Position is %d", mid);
}
return 0;
}