各種排序比較

2021-09-10 10:48:14 字數 1043 閱讀 6340

直接插入排序

void insertsort(elemtype a, int n)

}

氣泡排序

void bubblesort(int a, int n)

i = pos ; //為下一趟排序作準備

}}

快速排序

int partition(elemtype a, int low, int high)

a[low] = pivot; //樞軸值元素存放到最終到最終位置

return low; //返回存放樞軸的最終位置

}void quicksort(elemtype a, int low, int high)

}

簡單選擇排序(直接選擇排序)

(1)void selectsort(elemtype a, int n)

void selectsort(int a,int n){

int key,tmp;

for(int i=0;i記憶口訣:

(1)穩定性:心情不穩定,快些選一堆好友來聊天吧

快指快速排序,些(希)指希爾排序,選指選擇排序,堆指堆排序,這4個排序是不穩定的。

(2)時間複雜度:快些以nlog(2,n)的速度歸隊

快指快速排序,些(希)指希爾排序,歸指歸併排序,隊(堆)指堆排序,這4個排序的時間複雜度為nlog(2,n),其他均              為o(n^2)(基數除外,為o(d(n+r)))。

(3)空間複雜度:快歸基除外為o(1)

快是log(2,n),歸是n,基是r。

經過一趟排序,能保證乙個元素到達最終位置,有交換類(氣泡排序,快速排序)和選擇類(簡單排序、堆排序)排序,即插入類排序不可得到最終位置。

排序方法的元素比較次數與原始序列無關的有簡單選擇排序。

排序方法的排序趟數與原始序列有關的有交換類(氣泡排序,快速排序)排序。

各種排序演算法比較

花了很長時間終於把排序的基礎學了一下,這段時間學了很多東西,總結一下 學的排序演算法有 插入排序,合併排序,氣泡排序,選擇排序,希爾排序,堆排序,快速排序,計數排序,基數排序,桶排序 沒有實現 比較一下學習後的心得。我不是很清楚他們的時間複雜度,也真的不知道他們到底誰快誰慢,因為書上的推導我確實只是...

各種排序演算法比較

排序相關的演算法複雜度分析 下邊分別實現下各個演算法 簡單選擇排序 1 簡單選擇排序 2void select sort int a,intn 3 16 17swap a i a index 18 19 這裡簡單選擇排序之所以不穩定是因為交換的時候會打亂順序,例如 5,4,5,1,6。第一次交換後會...

各種排序演算法的比較

穩定的排序演算法有 直接插入,冒泡,歸併,基數排序。一.快速排序 快排的三個步驟 1.選取樞紐元,一般用三數中值法,即求得left,center,right的中位數 不要用第乙個數,如果原始資料是倒序,效率將會很低 2.根據樞紐元把輸入資料劃分成為兩部分,左半部分的數比樞紐元小,右半部分比樞紐元大。...