首页 > 代码库 > 二分法查找
二分法查找
二分法查找的时间复杂度最小,但是要求所查找的序列为有序序列
#include <stdio.h>
int bin_find(int* pa, int low, int high, int key)
{
int tmp = (low + high)/2;
if(low > high )
return -1;
else {
if(key > pa[tmp])
return bin_find(pa, tmp+1, high, key);
else if(key < pa[tmp])
return bin_find(pa, low, tmp-1, key);
else
return tmp;
}
}
int main()
{
int a[10] = {0,1, 2, 3, 4, 5, 6, 7, 8, 9};
int ret = bin_find(a, 0, 9, 3);
if(ret < 0){
printf("not found. \n");
return -1;
}
printf("a[%d]: %d\n",ret, a[ret]);
return 0;
}
二分法查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。