【发布时间】:2022-01-21 11:32:57
【问题描述】:
我正在学习二进制搜索,当我搜索数组中的最后一个元素时,搜索在 while 循环中的一次迭代中完成
#include <stdio.h>
void binSearch(int arr[], int element, int size) {
int low = 0, mid, high = size - 1, i = 0;
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == element) {
printf("The element was found after : %d", i);
// return mid;
}
if (arr[mid] < element) {
low = mid + 1;
} else {
high = mid - 1;
}
i++;
}
}
int main() {
int arr[20] = { 10, 22, 28, 33, 78, 124, 410, 511, 512, 999 };
int element = 999, size = sizeof(arr) / sizeof(int);
binSearch(arr, element, size);
return 0;
}
【问题讨论】:
-
你有什么问题?
-
打印出
main中size的值。是你预期的吗? -
我想检查循环执行了多少次,所以我添加了一个 int i 并不断增加它。
标签: c