c语言实现一维数组折半查找(二分查找)
时间: 2024-08-12 18:09:54 浏览: 115
在C语言中,实现一维数组的折半查找(二分查找),也称为二分搜索,通常用于已经排序的数组中。这种方法通过每次比较中间元素来缩小搜索范围,直到找到目标值或确定其不存在于数组中。以下是基本步骤的C代码实现:
```c
#include <stdio.h>
// 假设数组名为arr,元素类型为int,已排序
int binarySearch(int arr[], int n, int target) {
int low = 0; // 最低索引
int high = n - 1; // 最高索引
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 arr[] = {1, 3, 5, 7, 9, 11, 13};
int n = sizeof(arr) / sizeof(arr);
int target = 9;
int result = binarySearch(arr, n, target);
if (result != -1) {
printf("Element found at index %d\n", result);
} else {
printf("Element not found in the array\n");
}
return 0;
}
```
阅读全文