二分法查找c编写一个程序,能在数组中查找某个特定的数据元素。
时间: 2024-11-18 21:17:47 浏览: 1
在C语言中,二分法查找(也叫折半查找)是一种高效的搜索算法,适用于已排序的数组。它通过反复将待查找区间缩小一半来查找目标值。以下是二分查找的一个简单示例程序:
```c
#include <stdio.h>
// 函数声明
int binary_search(int arr[], int left, int right, int target);
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13}; // 排序好的整数数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int target = 9; // 要查找的目标元素
// 调用函数并打印结果
int result = binary_search(arr, 0, n - 1, target);
if (result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the array.\n");
return 0;
}
// 二分查找函数实现
int binary_search(int arr[], int left, int right, int target) {
if (left <= right) {
int mid = left + (right - left) / 2;
// 如果中间元素正好是我们要找的
if (arr[mid] == target)
return mid;
// 如果中间元素大于目标,我们在左半部分继续搜索
if (arr[mid] > target)
return binary_search(arr, left, mid - 1, target);
// 否则,在右半部分搜索
return binary_search(arr, mid + 1, right, target);
}
// 没有找到,返回-1表示不存在
return -1;
}
```
阅读全文