常用排序演算法小結

2021-06-23 00:39:14 字數 351 閱讀 7600

1,選擇排序

中心思想:從陣列第一位開始,當前位置與後面位置的數值進行比較,當後面位置數值比當前位置數值大時,兩者交換數值。

需要進行比較次數:n*(n-1)/2

int arr = ;

for(int x=0; x arr[y])}}

特點:內迴圈一次,最值出現在最前端

2.氣泡排序

中心思想:從陣列第一位開始,當前位置與後面相鄰位置的數值進行比較,當後面的值比當前位置數值大時,兩者交換數值

需要比較次數:n*(n-1)/2

public static void bubblesort(int arr)}}

}特點:最值出現在內迴圈後的最後段

常用排序演算法小結

直接插入排序 其思想為 可以先取出第乙個作為有序區間,遍歷剩下的無序區間,找到待排序元素依次和有序區間比較插入,直到整個陣列排序完成,其時間複雜度為o n 2 具體實現如下 include void insert int a,int n for i 0 i n i int main void ins...

排序演算法小結

1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。1 如果不多於1個資料,直接返回。2 一般選擇序列最左邊的值作為支點資料。3 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。4...

排序演算法小結

1 歸併排序 3.區別與聯絡 遞迴是從未知推到已知,相當於把未知的東西壓入棧,等到可以算出結果了,就一步一步出棧。迭代是從已知到未知,從已知的東西一步一步推至目標。遞迴與迭代就好像一對逆元。遞迴的 更加清晰,但開銷更大,也更容易出錯,除錯較困難 而迭代的 編寫更困難,但速度和開銷較小。4.空間占用 ...