请使用C语言编写二分查找程序
时间: 2023-07-19 12:43:15 浏览: 72
用C实现二分查找演示
好的,以下是使用C语言编写的二分查找程序:
```c
#include <stdio.h>
int binarySearch(int arr[], int len, int key) {
int left = 0, right = len - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] < key) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int len = sizeof(arr) / sizeof(arr[0]);
int key = 7;
int index = binarySearch(arr, len, key);
if (index == -1) {
printf("未找到 %d\n", key);
} else {
printf("找到 %d, 下标为 %d\n", key, index);
}
return 0;
}
```
该程序定义了一个名为`binarySearch`的函数,它接收一个已排序的整数数组、数组长度和要查找的关键字作为参数,返回关键字在数组中的下标,如果未找到则返回-1。主函数中定义了一个已排序的整数数组、数组长度和要查找的关键字,然后调用`binarySearch`函数进行查找,并根据返回值输出查找结果。
二分查找的思路是先将要查找的区间的左右端点确定下来,然后将中间位置的元素与要查找的关键字进行比较,如果相等则返回中间位置,如果中间位置的元素小于要查找的关键字则说明要查找的关键字在中间位置的右侧,将左端点移到中间位置的右侧,否则将右端点移到中间位置的左侧,然后继续进行查找,直到左右端点相遇或者找到了要查找的关键字为止。
阅读全文