菜鸟学习数据结构算法之路之折半搜索法

来源:互联网 发布:程序员需要什么学历 编辑:程序博客网 时间:2024/05/21 01:55

折半搜索法,顾名思义,就是把一个排序好的数组一分为二,然后判断想要找的数在哪一半,再一分为二的一种搜索方法。思路实现也比较简单,稍稍理解一下就能清楚了,一半一半再一半,直到递归找到想要的数下标。

int binary_search(int a[], int key, int begin, int end){    if (begin >= end){        return -1;    }    int value = (begin + end) / 2;                      //设置一个中间变量    if (a[value] > key){        return binary_search(a, key, begin, value );    //判断并且递归找出数值    }    else if (a[value] < key){        return binary_search(a, key, value + 1 , end);    }    else{        return value;                               //找到返回    }}int main(void){    int a[] = { 1, 3, 5, 7, 9 };    for (int i = 0; i < 10; i++){        cout << "searching " << i << endl;        cout << "position is " <<binary_search(a, i, 0, 5) << endl;    }    system("pause");    return 0;}
原创粉丝点击