map、set、multimap和multiset四種容器都是用紅黑樹實現的,紅黑樹本質上是平衡二叉樹的一種,所以操作的時間複雜度近似為:
插入:o(l
ogn)
o(logn)
o(logn
)檢視:o(l
ogn)
o(logn)
o(logn
)刪除:o(l
ogn)
o(logn)
o(logn
)上述四種容器由雜湊表實現,不同操作的時間複雜度為:
插入:o(1
)o(1)
o(1)
,最壞o(n
)o(n)
o(n)
檢視:o(1
)o(1)
o(1)
,最壞o(n
)o(n)
o(n)
刪除:o(1
)o(1)
o(1)
,最壞o(n
)o(n)
o(n)
特別注意:如果採用合適的雜湊函式,永遠不可能看到最壞的情況,明確這一點很重要。
關於時間複雜度和空間複雜度的一些想法
在學c語言程式設計的時候,相信很多朋友都不會涉及時間複雜度和空間複雜度的概念,我在學譚浩強的c的時候,也不曾有過關於複雜度的概念,後來學習了資料結構,其中裡面的幾種結構,才真正對複雜度有了認識,原因是c語言程式設計,即使是acm程式題,也未必有嚴格的時間和空間限制,乙個小小的程式,少則30行,多則6...
關於時間複雜度
1.演算法複雜度分為 時間複雜度和空間複雜度。作用 時間複雜度是度量演算法執行的時間長短 而空間複雜度是度量演算法所需儲存空間的大小。2.一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 分析 隨著模組n的增大,演算法執行的時間的...
關於時間複雜度
關於時間複雜度 o 的定義 若f n 是正整數n的乙個函式,則o f n 表示 m 0 使得當n n0時,f n m f n0 表示時間複雜度的階有 o 1 常量時間階 o n 線性時間階 o n 對數時間階 o n n 線性對數時間階 o n k k 2,k次方時間階 例 兩個n階方陣的乘法 fo...