C语言习题:有序数组查找某具体数字n(折半查找)
折半查找:也称为二分查找法,是一种在有序数组中查找某一特定元素的搜索算法。
搜索从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于该元素的那一半中查找,并且重复该步骤,从中间元素开始比较。若某1个步骤中数组为空,则代表找不到。
这种搜索算法每一次比较都使搜索范围缩小一半
#include <stdio.h>
int main() {
// insert code here...
int arr[] = {1,2,3,4,5,6,7,8,9,10};
//要查找的数字
int k = 0;
printf("请输入需要查找的数字:");
scanf("%d", &k);
//数组的元素个数
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] < k)
left = mid + 1;
else if(arr[mid] > k)
right = mid - 1;
else{
printf("找到了“%d”,在数组