码迷,mamicode.com
首页 > 其他好文 > 详细

二分法查找

时间:2017-05-04 16:30:52      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:二分法

    二分法查找的时间复杂度最小,但是要求所查找的序列为有序序列


#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;
}










二分法查找

标签:二分法

原文地址:http://12451545.blog.51cto.com/12441545/1921901

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!