#include "stdio.h"
int BianrySearch(char a[], int key, int n) //升序a[0:n-1]中搜索某一特定字符key,返回其下标
{
int left = 0;
int right = n-1;
while(left <= right)
{
int mid = (left + right)/2;
if(a[mid] == key) return mid;
else if(a[mid]<key) //中间元素<key
left = mid + 1; //在右半区间查找
else
right = mid - 1;
}
return -1; //没有找到
}
int main()
{
char a[27];
int i;
for(i=0; i<26; i++)
a[i] = i + 'a';
char key;
scanf("%c", &key);
int f = BianrySearch(a, key, 26);
printf("%d\n", f);
return 0;
}
二分搜索
最新推荐文章于 2023-01-07 20:29:55 发布