幾種簡單的排序

2021-07-17 05:32:31 字數 387 閱讀 7702

1.氣泡排序

主要思路: 從前往後依次交換兩個相鄰的元素,大的交換到後面,這樣每次大的資料就到後面,每一次遍歷,最大的資料到達最後面,時間複雜度是o(n^2)。

2.選擇排序

主要思路:每次遍歷序列,從中選取最小的元素放到最前面,n次選擇後,前面就都是最小元素的排列了,時間複雜度是o(n^2)。

3.插入排序

主要思路:使用了兩層巢狀迴圈,逐個處理待排序的記錄。每個記錄與前面已經排好序的記錄序列進行比較,並將其插入到合適的位置,時間複雜度是o(n^2)。

4.希爾排序

主要思路:用步長分組,每個分組進行插入排序,再慢慢減小步長,當步長為1的時候完成一次插入排序,  希爾排序的時間複雜度是:o(nlogn)~o(n2),平均時間複雜度大致是o(n^1.5)

幾種簡單的排序

今天檢視了arrays.sort a 的源 發現好複雜,根據a的長度不同,arrays.sort a 會呼叫不同的排序方法。簡單複習了下 快速排序 很簡單,把比某個數大的放右邊,小的放左邊。private static int partition int n,int left,int right i...

幾種簡單的排序

選擇排序 思想 每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。public static voidselectsort intarr temp arr i arr i arr index arr ind...

幾種簡單的排序演算法

整理了一下幾種簡單的排序演算法,暫時先貼上演算法,以後有時間在乙個乙個注釋 參考 下面是 部分 include 演算法1 氣泡排序,時間複雜度o n 2 基本思想 從最後乙個數開始,每次相鄰兩個數字比較,較小數往上浮動 void bubblesort int a,int c 演算法2 選擇排序,時間...