您当前的位置: 首页 >  算法

Bulut0907

暂无认证

  • 7浏览

    0关注

    346博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++折半查找_二分查找算法简介与代码实现

Bulut0907 发布时间:2020-11-19 23:21:17 ,浏览量:7

1. 简介

该算法针对有序数据,如无序则需先排序,其基本的思想是:

  1. 取数组的中间位置元素和要查找的数据比较,若相等,则表示查找成功
  2. 若中间位置元素 > 要查找的数据,则取数组的前一半继续从步骤1开始
  3. 若中间位置元素 < 要查找的数据,则取数组的后一半继续从步骤1开始
  4. 如果查找结束都没有相等的元素,则查找不成功
2. 算法实现
#include 
using namespace std;

template 
// list为升序,查找成功返回该元素的index, 失败返回-1
int bin_search(const T list[], int n, const T &value) {
    int low = 0;
    int high = n - 1;
    int mid;

    while(low  list[mid]) low = mid + 1;
        else high = mid - 1;
    }

    return -1;
}

int main() {

    int seq[10]={1,3,9,16,23,28,36,43,51,58};
    cout             
关注
打赏
1664501120
查看更多评论
0.2041s