用c语言做出折半查找
时间: 2024-12-11 18:15:58 浏览: 61
折半查找(Binary Search)是一种高效的查找算法,适用于已排序的数组。其基本思想是通过将查找范围不断缩小一半来快速找到目标值。以下是使用C语言实现折半查找的代码示例:
```c
#include <stdio.h>
// 折半查找函数
int binarySearch(int arr[], int size, int target) {
int left = 0;
int right = size - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid; // 找到目标值,返回索引
}
if (arr[mid] < target) {
left = mid + 1; // 目标值在右半部分
} else {
right = mid - 1; // 目标值在左半部分
}
}
return -1; // 未找到目标值
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int result = binarySearch(arr, size, target);
if (result != -1) {
printf("元素 %d 在数组中的索引为 %d\n", target, result);
} else {
printf("元素 %d 不存在于数组中\n", target);
}
return 0;
}
```
在这个示例中,`binarySearch`函数接受一个已排序的数组`arr`、数组的大小`size`以及要查找的目标值`target`。函数通过不断比较中间元素与目标值的大小关系,逐步缩小查找范围,直到找到目标值或确定目标值不在数组中。
阅读全文