用c语言将折半查找算法写成完整的程序,并上机通过。
时间: 2024-02-18 14:05:11 浏览: 87
好的,折半查找也称为二分查找,是一种高效的查找算法。下面是用C语言实现折半查找的完整程序:
```c
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1;
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;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int index = binary_search(arr, n, target);
if (index == -1) {
printf("目标元素不存在\n");
} else {
printf("目标元素在数组中的下标为:%d\n", index);
}
return 0;
}
```
程序中,binary_search函数接收一个整型数组arr、数组长度n和目标元素target,返回目标元素在数组中的下标。该函数通过左右指针left和right来确定搜索区间,每次将区间折半,判断中间元素与目标元素的大小关系,然后更新左右指针,直到找到目标元素或搜索区间为空。
在main函数中,我们定义了一个有序数组arr,目标元素为7,然后调用binary_search函数进行查找,最后输出目标元素在数组中的下标。
这是一个简单的折半查找程序,你可以根据自己的需要进行修改和扩展。
阅读全文