數據結構
排序算法
快速排序最壞的情況啥時候出現?
這個答案還得看樞軸(pivot)的選擇策略。在快速排序的早期版本中呢,最左面或者是最右面的那個元素被選爲樞軸,那最壞的情況就會在下面的情況下發生啦:
1)數組已經是正序(same order)排過序的。
2)數組已經是倒序排過序的。
3)所有的元素都相同(1、2的特殊情況)
因爲這些案例在用例中十分常見,所以這個問題可以通過要麼選擇一個隨機的樞軸,或者選擇一個分區中間的下標作爲樞軸,或者(特別是對於相比更長的分區)選擇分區的第一個、中間、最後一個元素的中值作爲樞軸。有了這些修改,那快排的最差的情況就不那麼容易出現了,但是如果輸入的數組最大(或者最小元素)被選爲樞軸,那最壞的情況就又來了。
圖論
算法 | 數據範圍 | 時間複雜度 |
---|---|---|
最短路徑-dijstra-小根堆 | Graph with V vertices and E edges | |
最短路徑-dijstra-無序數組 | Graph with V vertices and E edges | |
最短路徑-bellman-ford | Graph with V vertices and E edges | |
最短路徑-spfa | Graph with V vertices and E edges | |
最小生成樹-PRIME | Graph with V vertices and E edges | |
最小生成樹-Kruskal | Graph with V vertices and E edges |
參考文章:
https://blog.csdn.net/wumingqian_137229/article/details/53212319
https://blog.csdn.net/l975764577/article/details/39399077