用折半查找法比较10个数的大小,用C语言的数组,不用指针
时间: 2024-09-27 16:14:18 浏览: 35
折半查找,也称二分查找法,是在有序数组中查找特定元素的一种高效算法。对于10个已排序的整数数组,你可以按照以下步骤编写C语言代码:
首先,假设数组名为`arr`,长度为10,且已经按升序排列。我们可以定义一个函数来进行折半查找:
```c
#include <stdio.h>
// 定义折半查找函数
int binarySearch(int arr[], int left, int right, int target) {
if (right >= left) {
int mid = left + (right - left) / 2;
// 如果中间元素等于目标,则返回其索引
if (arr[mid] == target)
return mid;
// 否则,如果目标小于中间元素,缩小范围到左半部分
else if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target);
// 否则,缩小范围到右半部分
else
return binarySearch(arr, mid + 1, right, target);
}
// 没有找到,返回-1表示元素不存在于数组中
return -1;
}
int main() {
const int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 示例数组
int target = 5; // 要查找的数字
// 执行查找并打印结果
int resultIndex = binarySearch(array, 0, 9, target);
if (resultIndex != -1)
printf("Number found at index %d\n", resultIndex);
else
printf("Number not found in the array.\n");
return 0;
}
```
在这个例子中,我们在`binarySearch`函数中不断将搜索区间减半,直到找到目标元素或区间为空(即左边界大于右边界)。如果没有找到,返回-1作为标识。