查找算法
順序查找
- 順序查找也稱爲線形查找,屬於無序查找算法。
- 時間複雜度爲O(n);
二分查找
- 元素必須是有序的,若是是無序的則要先進行排序操做。
- 也稱折半查找,屬於有序查找算法。
- 複雜度分析:
- 最壞狀況下,關鍵詞比較次數爲log2(n+1),
- 且指望時間複雜度爲O(log2n);
插值查找
- 基於二分查找算法,
- 將查找點的選擇改進爲自適應選擇,能夠提升查找效率。
- 找最大值最小值的中間值
- 均勻分佈效率高
- 固然,插值查找也屬於有序查找。
- 複雜度分析:
- 查找成功或者失敗的時間複雜度均爲O(log2(log2n))。
斐波那契查找
- 二分查找的一種提高算法,
- 經過運用黃金比例的概念在數列中選擇查找點進行查找,提升查找效率。
- 一樣地,斐波那契查找也屬於一種有序查找算法。
樹表查找
- 二叉查找樹是先對待查找的數據進行生成樹,
- 確保樹的左分支的值小於右分支的值,
- 而後在就行和每一個節點的父節點比較大小,查找最適合的範圍
分塊查找
- 又稱索引順序查找,它是順序查找的一種改進方法
- 將n個數據元素"按塊有序"劃分爲m塊(m ≤ n)。
哈希查找
歡迎關注本站公眾號,獲取更多信息