五種查詢演算法總結

2021-07-11 23:40:28 字數 932 閱讀 9657

五種查詢演算法總結 

一、順序查詢

條件:無序或有序佇列。

原理:按順序比較每個元素,直到找到關鍵字為止。   時間複雜度:o(n)

二、二分查詢(折半查詢)

條件:有序陣列

原理:查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束;      如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。

如果在某一步驟陣列為空,則代表找不到。      這種搜尋演算法每一次比較都使搜尋範圍縮小一半。   時間複雜度:o(logn)

三、二叉排序樹查詢

條件:先建立二叉排序樹:

1. 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;       2. 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;       3. 它的左、右子樹也分別為二叉排序樹。   原理:

在二叉查詢樹b中查詢x的過程為:     1. 若b是空樹,則搜尋失敗,否則:

2. 若x等於b的根節點的資料域之值,則查詢成功;否則:     3. 若x小於b的根節點的資料域之值,則搜尋左子樹;否則:

4. 查詢右子樹。

時間複雜度:   o(log2(n))

四、雜湊表法(雜湊表)

條件:先建立雜湊表(雜湊表)

原理:根據鍵值方式(key value)進行查詢,通過雜湊函式,定位資料元素。   時間複雜度:幾乎是o(1),取決於產生衝突的多少。

五、分塊查詢

原理:將n個資料元素"按塊有序"劃分為m塊(m ≤ n)。

每一塊中的結點不必有序,但塊與塊之間必須"按塊有序";即第1塊中任一元素的關鍵字都必須小於第2塊中任一元素的關鍵字;

而第2塊中任一元素又都必須小於第3塊中的任一元素,……。   然後使用二分查詢及順序查詢。

五大查詢演算法總結

一 順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序...

查詢演算法總結

順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序查詢...

查詢演算法總結

順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序查詢...