能否提供一份关于C语言中二分查找算法的具体实现代码?
时间: 2024-10-20 20:04:50 浏览: 44
数据结构 二分查找程序代码
4星 · 用户满意度95%
当然可以。在C语言中,二分查找也称为折半查找,通常用于有序数组中寻找特定元素。下面是一个简单的二分查找算法的示例实现:
```c
#include <stdio.h>
int binarySearch(int arr[], int n, int target) {
int left = 0;
int 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; // 如果找不到,返回-1表示元素不存在于数组中
}
int main() {
int array[] = {2, 4, 7, 9, 11, 15, 18};
int size = sizeof(array) / sizeof(array[0]);
int searchElement = 9;
int result = binarySearch(array, size, searchElement);
if(result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the array\n");
return 0;
}
```
这个函数`binarySearch`接受一个整数数组、数组长度以及要查找的目标值,通过不断缩小搜索范围,直到找到目标或确定其不存在。
阅读全文