c语言折半查找法找字符,C语言简单实现折半查找法
时间: 2023-10-11 09:05:36 浏览: 124
折半查找法(Binary Search)是一种基于比较目标值和数组中间元素的查找算法。它的时间复杂度为O(log n)。
以下是在一个已排序的字符数组中使用C语言实现折半查找法的示例代码:
```c
#include <stdio.h>
int binarySearch(char arr[], int left, int right, char target) {
if (right >= left) {
int mid = left + (right - left) / 2;
// 如果目标字符位于中间位置,则返回中间位置的下标
if (arr[mid] == target)
return mid;
// 如果目标字符比中间字符小,则在左半部分继续查找
if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target);
// 否则,在右半部分继续查找
return binarySearch(arr, mid + 1, right, target);
}
// 如果未找到目标字符,则返回-1
return -1;
}
int main() {
char arr[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
int n = sizeof(arr) / sizeof(arr[0]);
char target = 'd';
int result = binarySearch(arr, 0, n - 1, target);
if (result == -1)
printf("未找到目标字符\n");
else
printf("目标字符位于下标 %d\n", result);
return 0;
}
```
该程序输出结果为:
```
目标字符位于下标 3
```
注意:在使用折半查找法前,必须先将待查找的字符数组按照升序或者降序排列。
阅读全文