常見算法|數據結構複雜度一覽

數據結構

在這裏插入圖片描述

排序算法

在這裏插入圖片描述
快速排序最壞的情況啥時候出現?

這個答案還得看樞軸(pivot)的選擇策略。在快速排序的早期版本中呢,最左面或者是最右面的那個元素被選爲樞軸,那最壞的情況就會在下面的情況下發生啦:

1)數組已經是正序(same order)排過序的。
2)數組已經是倒序排過序的。
3)所有的元素都相同(1、2的特殊情況)

因爲這些案例在用例中十分常見,所以這個問題可以通過要麼選擇一個隨機的樞軸,或者選擇一個分區中間的下標作爲樞軸,或者(特別是對於相比更長的分區)選擇分區的第一個、中間、最後一個元素的中值作爲樞軸。有了這些修改,那快排的最差的情況就不那麼容易出現了,但是如果輸入的數組最大(或者最小元素)被選爲樞軸,那最壞的情況就又來了。

圖論

算法 數據範圍 時間複雜度
最短路徑-dijstra-小根堆 Graph with V vertices and E edges O(V+E)log2EO(V+E)\log_2 E
最短路徑-dijstra-無序數組 Graph with V vertices and E edges O(V2)O(V^2)
最短路徑-bellman-ford Graph with V vertices and E edges O(VE))O(VE))
最短路徑-spfa Graph with V vertices and E edges O(VE))O(VE))
最小生成樹-PRIME Graph with V vertices and E edges O(V2)O(V^2)
最小生成樹-Kruskal Graph with V vertices and E edges O(Elog2E)O(E\log_2 E)

參考文章:
https://blog.csdn.net/wumingqian_137229/article/details/53212319
https://blog.csdn.net/l975764577/article/details/39399077

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章