排序算法的穩定性及其匯總


1.時間復雜度為O(n^2)排序的穩定性:原序列中相同的值,在排好順序之后,能夠保證原來的相同的值相對順序保持不變。在一個算法中,如果所有相同值,在排完序之后,值的順序不會被打亂,那么這個算法就是穩定的。如果會被打亂,那么這個排序就不具備穩定性。 如果在相等情況下也進行交換,那么冒泡排序就不是穩定的了。  冒泡排序可以實現為穩定的,插入排序可以實現為穩定的,選擇排序不能實現穩定的算法。

2.時間復雜度O(nlogn)算法。歸並排序可以做到穩定性,遇到相等的情況下拷貝左邊的,保證右邊的想等值不會跑到右邊就可以做到穩定性。快速排序不能實現穩定性。堆排序做不到穩定性。

3.工程中的綜合排序算法。

  (1)在工程中,會先判斷數組中的值是基礎類型(基礎類型會用快排)還是對象類型(就需要用到比較器,使用歸並排序),但是如果數組很短,不選選擇快排,也不會選擇歸並,會直接用插入排序。

4.有關排序問題的補充:

  (1)歸並排序的額外空間復雜度可以變成O(1),但是非常難。

5.認識比較器的使用。

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM