1、二分查找的基本思想是,要查找的值和整个数组序列的中间值做比较,确认该值在其中一半里,只要在数组序列一半中继续搜索。 2、采用二分查找方法的前提条件是数组或线性表中
1、二分查找的基本思想是,要查找的值和整个数组序列的中间值做比较,确认该值在其中一半里,只要在数组序列一半中继续搜索。
2、采用二分查找方法的前提条件是数组或线性表中元素必须按照大小有序排列。代码如下,
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz;
int mid = 0;
printf("输入要找的数字:");
scanf("%d", &k);
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] > k) {
right = mid - 1;
} else if (arr[mid] < k) {
left = mid + 1;
} else {
printf("找到了,下标是:%d\n", mid);
break;
}
}
if (left > right) {
printf("找不到!");
}
}
输出结果: