C语言写个二分法程序
时间: 2024-08-13 09:09:11 浏览: 45
C语言中的二分查找算法(Binary Search)是一种在有序数组中查找特定元素的高效搜索算法。它的基本思想是每次比较中间元素与目标值,然后根据比较结果决定是在数组的左半部分还是右半部分继续查找,直到找到目标值或者确定它不存在于数组中。以下是C语言实现二分查找的一个简单示例:
```c
#include <stdio.h>
// 二分查找函数
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2; // 计算中间索引
if (arr[mid] == target) { // 如果找到目标值
return mid;
} else if (arr[mid] < target) { // 如果中间值小于目标,查找右半部分
left = mid + 1;
} else { // 如果中间值大于目标,查找左半部分
right = mid - 1;
}
}
// 没有找到,返回-1
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13}; // 示例数组,已排序
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7; // 要查找的目标值
int result = binarySearch(arr, 0, n - 1, target);
if (result != -1) {
printf("元素 %d 在数组中的位置是 %d\n", target, result);
} else {
printf("元素 %d 未在数组中找到\n", target);
}
return 0;
}
```