八大排序演算法之交換排序

2021-08-27 03:24:49 字數 885 閱讀 1332

在之前兩篇文章中,我們學習了插入排序和選擇排序,八大演算法之插入排序,八大演算法之選擇排序,這篇文章,我們來了解一下交換排序。

常用的交換排序有氣泡排序和快速排序,主要思想就是交換。

1.氣泡排序

基本思想:每相鄰兩個數比較,若大小與要排序順序不同,則交換。

將序列當中的左右元素,依次比較,保證右邊的元素始終大於左邊的元素( 第一輪結束後,序列最後乙個元素一定是當前序列的最大值;)

對序列當中剩下的n-1個元素再次執行以上步驟。

時間複雜度:o(n^2)

void bubblesort(int a,int n)}}

2.快速排序

基本思想:挖坑填數+分治法

從序列當中選擇乙個基準數

在這裡我們選擇序列當中第乙個數最為基準數

將序列當中的所有數依次遍歷,比基準數大的位於其右側,比基準數小的位於其左側

重複步驟1.2,直到所有子集當中只有乙個元素為止。

時間複雜度:o(nlog2n)

空間複雜度:o(n) n為遞迴壓棧次數

quicksort(a, l, i - 1); // 遞迴呼叫

quicksort(a, i + 1, r);}}

對快速排序來說,兩個指標分別查詢相較於基準值大或者小的,所以相同元素的相對位置可能會發生改變,即快排是不穩定的。

八大排序演算法之交換排序

在之前的兩篇部落格中,我們分別說了插入排序和選擇排序,有興趣的同學還可以戳鏈結去看看八大排序演算法之選擇排序 八大排序演算法之插入排序。交換排序主要說得是氣泡排序和快速排序,思想就和名字一樣是用交換來實現的。1.氣泡排序 基本思想 在要排序的陣列中,對當前還沒排好序的範圍內的全部數,進行依次比較,以...

八大排序 交換排序之 氣泡排序

起泡排序 bubble sort 的演算法思想是 設待排序有n個記錄,首先將第乙個記錄的關鍵字r1.key和第二個記錄的關鍵字r2.key進行比較,若r1.key r2.key,就交換記錄r1和r2在序列中的位置 然後繼續對r2.key和r3.key進行比較,並作相同的處理 重複此過程,直到關鍵字r...

排序演算法之交換排序

交換排基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,知道沒有反序的元素為止。本節介紹兩種交換排序,即氣泡排序和快速排序。氣泡排序 每次只能和相鄰的位置數進行交換,效率低 include int a 100 void quicksort int left,int right...