用折半查找法比较10个数的大小,用数组不用指针的C语言
时间: 2024-09-27 12:14:17 浏览: 37
一次运行结果-一部c语言教程
折半查找,也叫二分查找,是一种在有序数组中搜索特定元素的高效算法。在C语言中,你可以使用数组和索引来实现这个过程。以下是使用数组并避免直接使用指针的一个简单示例:
```c
#include <stdio.h>
// 定义数组
int arr[10] = {5, 8, 1, 9, 4, 6, 7, 2, 10, 3}; // 假设数组已经排序
// 定义折半查找函数
int binary_search(int target, int low, int high) {
while (low <= high) {
int mid = (low + high) / 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 search_for = 5; // 要查找的数字
int result = binary_search(search_for, 0, 9); // 从数组的第一个元素开始找
if (result != -1) {
printf("Number found at index %d\n", result);
} else {
printf("Number not found in the array.\n");
}
return 0;
}
```
在这个例子中,`binary_search`函数接受要查找的目标值、数组范围的起始索引`low`和结束索引`high`作为参数,通过不断将搜索区间减半来定位目标。
阅读全文