• 二分法查找


    二分查找又称二分查找。
    如果是在一个元素排列有序的数组中进行查找,可以采用折半查找。
    二分查找的基本思想是:对于已知的按关键字排序的序列,经过一次的比较后,可将序列分割成两部分,然后只在有可能包含待查找元素的一部分中接着查找,并根据试探结果继续分割,逐步缩小查找范围,直到找到或找不到为止。
    二分查找的具体图解
    这里写图片描述
    代码如下;

    #include<iostream>
    #include<algorithm>
    using namespace std;
    //  折半查找的方法,在元素升序排列的数组list中查找值为k的元素
    int binSearch(int list[],int n,int k)
    {
        int low=0;
        int high=n-1;
        while(low<=high)//如果low<=high 表示整个数组尚未查找完
        {
            int mid=(low+high)/2;//求中间元素的下标
            if(k==list[mid])
                return mid;//找到k 返回下标
            else if(k<list[mid])
                high=mid-1;//若k<list[mid]将范围缩小到前一半
            else
                low=mid+1;//若k>list[mid]将范围缩小的后一半
        }
        return -1;//若找不到 返回-1
    }
    int main()
    {
        int list[]={1,2,3,4,5,6};
        cout<<binSearch(list,5,5)<<endl;
        return 0;
    }
    
  • 相关阅读:
    POJ 3007 Organize Your Train part II (字典树 静态)
    POJ 3096 Surprising Strings
    移动APP安全测试
    monkey亲测
    PHP笔记
    my sql 只展示 前10条数据的写法
    面试问的东西
    定时构建常用 设置
    jenkins 定时构建 位置
    jenkins 使用的python 不是指定的python 的解决方法
  • 原文地址:https://www.cnblogs.com/nanfenggu/p/7900114.html
Copyright © 2020-2023  润新知