目錄
1、空間復雜度
2、穩定性
3、運行時間
4、目前默認的sort內置函數排序函數
5、六種常用排序方法
?
1、空間復雜度
空間復雜度產生的原因有兩個:①重新定義了一塊空間用于存儲數據;②遞歸產生了棧空間
冒泡排序、選擇排序、堆排序和插入排序屬于原地實現排序,因此空間復雜度為常數級別
快速排序,在算法中雖然沒有使用到另外的空間,但是是通過遞歸來實現的,而遞歸會產生棧空間,一般為O(nlogn)
對于歸并排序,內部也使用了遞歸,但是它使用了額外的空間來存儲排好序的元素,其復雜度為O(n),大于遞歸復雜度O(nlogn)
2、穩定性
判斷一個排序算法的穩定性就是通過看排序結束后兩個相同數據的相對位置是否發生了變化,簡單來說,挨個進行比較的排序算法是穩定的,但是飛著(即算法中出現跨越式交換元素)的排序算法是不穩定的。
就比如上述三個字典,我要是根據name進行排序,穩定的排序算法是,字典1和字典3的前后順序是不改變的,比如利用冒泡排序算法,挨個進行比較,若兩個元素一樣則不交換,否則交換,這樣就保證了相對位置不改變。
3、運行時間
快速排序<歸并排序<堆排序
4、目前默認的sort內置函數排序函數
歸并+插入排序
排序算法穩定!!!
5、六種常用排序方法
冒泡插入選擇排序:
https://blog.csdn.net/qq_45769063/article/details/109361181
快速排序:
https://blog.csdn.net/qq_45769063/article/details/109297971
堆排序:
https://blog.csdn.net/qq_45769063/article/details/109352745
歸并排序:
https://blog.csdn.net/qq_45769063/article/details/109357125