7-12 二分查找之过程
#include<stdio.h>
int find(int left, int right, int X);
int a[11];
int main() {
int x, n;
scanf("%d %d", &n, &x);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
getchar();
}
for (int i = 0; i < n - 1; i++) {
if (a[i] >= a[i + 1]) {
printf("Invalid Value");
return 0;
}
}
find(0, n-1,x);
return 0;
}
int find(int left, int right, int x) {
if (left >right) {
printf("Not Found");
return 0;
}
int mid = (left + right) / 2;
printf("[%d,%d][%d]\n", left, right, mid);
if (x ==a[mid]) {
printf("%d", mid);
}
else if (x < a[mid]) {
find(left, mid - 1, x);
}
else {
find(mid+1, right, x);
}
return 0;
}