逐日一题——第一百一十七题
标题:利用二分查找,查找一个数是否存在于一个升序数组中#include <stdio.h>
int binarySearch(int arr[], int length, int elem);
int main()
{
int arr[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int key;
int length = sizeof(arr) / sizeof(arr);
printf("请输入要查找的元素:\n");
scanf_s("%d", &key);
int mid = binarySearch(arr, length, key);
if (mid != -1) {
printf("找到了该数, 数组下标为:%d", mid);
}
else {
printf("未找到该数");
}
return 0;
}
int binarySearch(int arr[], int length, int elem) {
int low = 0, high = length - 1, mid;
while (low <= high) {
mid = (low + high) / 2;
if (arr == elem) {
return mid;
}
else if (arr > elem) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
return -1;//未找到
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]