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

五、二分查找

时间:2015-03-10 13:45:42      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

前提:数据先排序。

#include <iostream>

using namespace std;

int BinarySearch(int List[], const int size, const int value);

int main()
{
    int a[] = {1,2,3,4,5,6,7,8,11,23,43,123};
    int pos = BinarySearch(a,12,321);
    if(pos > 0)
        cout << "所寻找数据下标:" << pos << endl;
    else
        cout << "所寻找数据超出范围" << endl;  

    system("pause");
    return 0;
}

int BinarySearch(int List[], const int size, const int value)
{
    int low, height, mid;
    low = 0;
    height = size - 1;
    if(List[size -1] < value)
        return -1;

    mid = (low + height) / 2;
    while(low < height)
    {
        if(List[mid] > value)
        {
            mid = (low + mid) / 2;
        }
        else if(List[mid] < value)
        {
            mid = (mid + height) / 2;
        }
        else
            return mid;
    }
}

 

五、二分查找

标签:

原文地址:http://www.cnblogs.com/gongyan/p/4325635.html

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