幾種查詢演算法的比較

2021-07-04 15:36:07 字數 919 閱讀 4408

1.

堆的意義在於最快的找到最大最小值,在堆中插入乙個值,取走最大值或最小值重新構建堆結構,其時間複雜度為o(log n) ,

而其它方法至少為

o(n)。

堆在實際中用途不在於排序,堆的應用:

a.在於排程演算法中,比如優先順序排程,每次取優先順序最高的.

b.可以採用堆構造優先順序佇列,優化dijstra

演算法。

c.對於海量資料,可以求資料的前n

大或前n小。

2.雜湊表主要是一o(1)

時間內對查詢物件定位,但是事實上,如果輸入集合不確定的情況下,可能出現大量衝突,這樣可能出現最差情況。所以雜湊表如果在輸入集合確定的情況下,選擇合適的雜湊函式和解決衝突的方法,可以在

o(1)

時間內完成。

雜湊的一些應用:

在程序的組織中,有一種為hash

組織,將程序根據

pid儲存的

hash

表中,便於查詢。 3.

二叉樹排序樹為了動態的查詢和插入,保證在o(height時間)

,這就完成了

hash

不能完成的。但是二叉樹可能出現最壞情況,使得二叉樹的深度幾乎與資料規模一致,這就會大大降低二叉排序樹的效率。 4.

平衡樹和紅黑樹為了把查詢的時間保證在o(logn)

範圍內,是對二叉排序樹的優化。

一些應用:

a.在linux

核心儲存管理中,對於程序位址空間不同的虛擬區域,核心使用平衡樹(新核心中為紅黑樹)對這些區域組織,以便快速定位某個區域。

b.在linux

核心的排程演算法中,

cfs排程演算法以程序的

vruntime(

虛擬執行時間

)為權值構造紅黑樹,以快速找到

vruntime

最小的程序。

幾種常見的查詢演算法之比較

一 順序查詢 條件 無序或有序佇列。原理 按順序比較每個元素,直到找到關鍵字為止。時間複雜度 o n 二 二分查詢 折半查詢 條件 有序陣列 原理 查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中...

幾種常見的演算法比較

排序演算法總結 時間複雜度 平方階o n2 的排序 各類簡單排序 直接插入 直接選擇 氣泡排序 線性對數o nlg2n 排序 快速排序 堆排序和歸併排序 o n1 排 序 為介於0 1之間的常數 希爾排序 線性o n 排序 基數排序 桶排序 箱排序 空間複雜度 穩定性 特別注意 1.當輸入陣列有序或...

幾種排序演算法的比較

1.分類 非線性時間比較類排序 通過比較來決定元素間的相對位置關係,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間比較類排序 不通過比較來決定元素間的相對位置關係,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間比較類排序。2.複雜度 3.演算法相關...