二分法查找c语言程序
时间: 2023-11-21 17:52:08 浏览: 197
下面是C语言实现二分法搜索的程序,其中包含了注释以方便理解。代码如下:
```c
#include <stdio.h>
/*
* 二分法搜索函数,输入参数为要搜索的数组、始下标、结束下标以及要搜索的元素。
* 函数返回目标元素在数组中的下标位置,如果未找到则返回-1。
*/
int binary_search(int arr[], int start, int end, int target) {
while (start <= end) {
int mid = start + (end - start) / 2; // 取中间位置
if (arr[mid] == target) { // 找到目标元素,返回下标位置
return mid;
}
if (arr[mid] < target) { // 目标元素在右半部分,更新起始下标
start = mid + 1;
} else { // 目标元素在左半部分,更新结束下标
end = mid - 1;
}
}
return -1; // 未找到目标元素,返回-1
}
int main() {
int arr[] = {2, 5, 7, 9, 11, 15, 18, 20}; // 有序数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int target = 11; // 要查找的元素
int index = binary_search(arr, 0, n - 1, target); // 查找目标元素
if (index != -1) { // 找到目标元素,输出下标位置
printf("目标元素 %d 在数组中的下标位置为 %d\n", target, index);
} else { // 未找到目标元素
printf("未找到目标元素 %d\n", target);
}
return 0;
}
```
--相关问题--:
阅读全文