用折半查找法比较10个数的大小,用C语言的数组,不用指针和函数
时间: 2024-09-27 10:14:19 浏览: 44
在C语言中,我们可以直接使用数组和循环来实现折半查找法。假设我们有一个已排序的整数数组arr[],可以按照以下步骤操作:
```c
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // 折半查找位置
if (arr[mid] == target) {
return mid; // 找到目标,返回索引
} else if (arr[mid] < target) {
low = mid + 1; // 目标大于中间元素,缩小左边界
} else {
high = mid - 1; // 目标小于中间元素,缩小右边界
}
}
return -1; // 没有找到目标,返回-1
}
int main() {
int arr[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; // 排序好的数组
int n = sizeof(arr) / sizeof(arr[0]);
int target = 15; // 需要查找的数
int result_index = binary_search(arr, n, target);
if (result_index != -1) {
printf("元素 %d 的位置是 %d\n", target, result_index);
} else {
printf("找不到目标元素 %d\n", target);
}
return 0;
}
```
在这个例子中,`binary_search` 函数接受一个已排序数组、数组长度和目标值,通过不断将搜索范围减半直到找到目标值或范围为空,实现了折半查找。`main` 函数则演示了如何调用这个函数。
阅读全文