資料結構 排序演算法系列總結

2021-10-10 01:56:39 字數 971 閱讀 9676

目錄

1、空間複雜度

2、穩定性

3、執行時間

4、目前預設的sort內建函式排序函式

5、六種常用排序方法

空間複雜度產生的原因有兩個:重新定義了一塊空間用於儲存資料;遞迴產生了棧空間

氣泡排序、選擇排序、堆排序和插入排序屬於原地實現排序,因此空間複雜度為常數級別

快速排序,在演算法中雖然沒有使用到另外的空間,但是是通過遞迴來實現的,而遞迴會產生棧空間,一般為o(nlogn)

對於歸併排序,內部也使用了遞迴,但是它使用了額外的空間來儲存排好序的元素,其複雜度為o(n),大於遞迴複雜度o(nlogn)

判斷乙個排序演算法的穩定性就是通過看排序結束後兩個相同資料的相對位置是否發生了變化,簡單來說,挨個進行比較的排序演算法是穩定的,但是飛著(即演算法**現跨越式交換元素)的排序演算法是不穩定的。

就比如上述三個字典,我要是根據name進行排序,穩定的排序演算法是,字典1和字典3的前後順序是不改變的,比如利用氣泡排序演算法,挨個進行比較,若兩個元素一樣則不交換,否則交換,這樣就保證了相對位置不改變。

快速排序《歸併排序《堆排序

歸併+插入排序

排序演算法穩定!!!

冒泡插入選擇排序:

快速排序:

堆排序:

歸併排序:

資料結構與演算法系列 排序 8 1 氣泡排序

核心思想 氣泡排序是一種典型的 交換排序 通過比較相鄰元素大小來決定是否交換位置 氣泡排序的思想 不停地比較相鄰的兩個記錄,如果相鄰的兩個記錄的次序是反序則交換,直到所有的記錄都已經排好序了 使關鍵字最小或最大的記錄如氣泡一般逐漸往上 漂浮 直至 水面 所以叫氣泡排序 比較相鄰的元素。如果第乙個比第...

資料結構與演算法系列 9 希爾排序演算法

希爾排序 shellsort 也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。希爾排序是基於插入排序的以下兩點性質而提出改進方法的 我們來看下希爾排序的基本步驟,在此我們選擇增量gap length 2,縮小增量繼續以gap gap 2的方式,這種增量選擇我們可以用乙個序列來表示,稱為增量...

資料結構與演算法系列 基數排序

基數排序與其他的排序方法 都不同,它不需要比較關鍵字的大小。演算法的時間複雜度是o n 相比於快速排序的o nlgn 從表面上看具有不小的優勢.但事實上可能有些出入,因為基數排序的n可能具有比較大的係數k.因此在具體的應用中,應首先對這個排序函式的效率進行評估.它是根據關鍵字中各位的值,通過對排序的...