zoukankan      html  css  js  c++  java
  • 查找

    查找

    顺序查找

    • 顺序查找的基本思想:

    从序列的首元素开始,逐个元素与待查找的关键字进行比较,直到找到相等的。若整个序列中没有与待查找关键字相等的元素,就是查找不成功。

    例9-14顺序查找函数模板

    template <class T>
    int seqSearch(const T list[], int n, const T &key) {
        for(int i = 0; i < n; i++)
            if (list[i] == key)
                return i;            
        return -1;                 
    }

    折半查找(二分法查找)算法

    • 对于已按关键字排序的序列,经过一次比较,可将序列分割成两部分,然后只在有可能包含待查元素的一部分中继续查找,并根据试探结果继续分割,逐步缩小查找范围,直至找到或找不到为止。

    折半查找算法示例

    • 用折半查找法,在下列序列中查找值为21的元素:

    • 用折半查找法,在下列序列中查找值为20的元素:

    例9-15 折半查找函数模板

    template <class T>
    int binSearch(const T list[], int n, const T &key) {
        int low = 0;
        int high = n - 1;
        while (low <= high) {   
            int mid = (low + high) / 2;
            if (key == list[mid])    
                return mid; 
            else if (key < list[mid])
                high = mid – 1;
            else
                low = mid + 1;
        }
        return -1;
    }
  • 相关阅读:
    崔工读过的技术书籍,持续更新中!
    Python-S9——Day110-Git继续
    Python-S9——Day115-Flask Web框架
    树形dp 之 小胖守皇宫
    线性dp 之 奶牛渡河
    网课神器之obs-studio的安装使用
    Convert to Ones
    UVA 10653.Prince and Princess
    HDOJ 1051. Wooden Sticks
    洛谷P1063.能量项链
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/4925446.html
Copyright © 2011-2022 走看看