排序演算法彙總

2021-07-23 20:57:20 字數 510 閱讀 6113

排序演算法經過了很長時間的演變,產生了很多種不同的方法。對於初學者來說,對它們進行整理便於理解記憶顯得很重要。每種演算法都有它特定的使用場合,很難通用。因此,我們很有必要對所有常見的排序演算法進行歸納。

我不喜歡死記硬背,我更偏向於弄清來龍去脈,理解性地記憶。比如下面這張圖,我們將圍繞這張圖來思考幾個問題。

冒泡---快排

插入---希爾

選擇---堆排序

歸併  基數排序

其實這個空間複雜度不太好計算,因為有的人使用的是非就地排序,那樣就不好計算了(因為有的人用到了輔助陣列,所以這就要計算到你的元素個數了);我就分析下就地快速排序的空間複雜度吧;

首先就地快速排序使用的空間是o(1)的,也就是個常數級;而真正消耗空間的就是遞迴呼叫了,因為每次遞迴就要保持一些資料;

最優的情況下空間複雜度為:o(logn)  ;每一次都平分陣列的情況

最差的情況下空間複雜度為:o( n )      ;退化為氣泡排序的情況

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...