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

查找——二分法查找

时间:2017-10-22 21:41:06      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:div   条件   错位   ddl   span   col   返回值   search   数组   

条件:在非降序排列的数组中查找元素key

返回值:如果找到,返回对应的索引;如果没找到,返回-1;

int BinarySearch(int a[],int n,int key)
{
    int left = 0; //左游标
    int right = n-1;  //右游标
    int middle;
    while(left <= right)  //left=right=middle,只有一个元素,这时仍需要比较middle和key
    {
        middle=(left+right)/2;
        if(key == a[middle])  //直接找到了
        {
            return middle;
        }
        else if(key > a[middle])  //key在右半部分,将左游标滑至middle的下一位
        {
            left = middle+1;
        }
        else  //key在左半部分,将右游标滑至middle的上一位
        {
            right = middle-1;
        }
    }
    return -1;  //游标错位,数组遍历完成,key不存在于数组中
}

 

查找——二分法查找

标签:div   条件   错位   ddl   span   col   返回值   search   数组   

原文地址:http://www.cnblogs.com/wust-owen/p/7710347.html

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