#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int bin_search(int a[], int size, int num) {
int left = 0;
int right = size - 1;
int mid = 0;
while (left<=right) {
mid = (left + right) / 2;
if (num > a[mid]) {
left = mid + 1;
}
else if (num < a[mid]) {
right = mid - 1;
}
else {
return mid;
break;
}
}
if (left > right) {
return -1;
}
}
int main() {
int arr[10] = {15,36,59,71,93,118,143,189,245,333 };
int input = 0;
printf("输入你要查找的数:");
scanf("%d", &input);
printf("\n");
int size = sizeof(arr) / sizeof(arr[0]);
int ret=bin_search(arr, size, input);
if (ret >= 0) {
printf("已找到,下标是%d!\n\n", ret);
}
else {
printf("找不到你查找的数!\n\n");
}
system("pause");
return 0;
}
在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1(折半查找)
猜你喜欢
转载自blog.csdn.net/weixin_43267837/article/details/88776267
今日推荐
周排行