經典排序演算法複習總結

2021-07-08 17:52:25 字數 1496 閱讀 5701

前置定義:

in-place sort(不占用額外記憶體或占用常數的記憶體):插入排序、選擇排序、氣泡排序、堆排序、快速排序。

out-place sort:歸併排序、計數排序、基數排序、桶排序。

stable sort:插入排序、氣泡排序、歸併排序、計數排序、基數排序、桶排序。

unstable sort:選擇排序(5 8 5 2 9)、快速排序、堆排序。

一.插入排序:

特點:stable sort、in-place sort

最優複雜度:當輸入陣列就是排好序的時候,複雜度為o(n),而快速排序在這種情況下會產生o(n^2)的複雜度。

最差複雜度:當輸入陣列為倒序時,複雜度為o(n^2)

插入排序比較適合用於「少量元素的陣列」。

二.氣泡排序:

特點:stable sort、in-place sort

思想:通過兩兩交換,像水中的泡泡一樣,小的先冒出來,大的後冒出來。

三.選擇排序:

特性:in-place sort,unstable sort。

思想:每次找乙個最小值。

四.歸併排序:

特點:stable sort、out-place sort

思想:運用分治法思想解決排序問題。

五.快速排序:

特性:unstable sort、in-place sort。

六.堆排序:

特性:unstable sort、in-place sort。

七.計數排序:

特性:stable sort、out-place sort。

八.基數排序:

特性:stable sort、out-place sort。

九.桶排序:

假設輸入陣列的元素都在[0,1)之間。
特性:out-place sort、stable sort。

經典排序演算法總結

排序演算法是離散數學和資料結構學科最基本的演算法,雖然知道這些排序演算法的名字,但是一直沒有研究過它們的實現原理。現在把它們收集起來,並一一親自實現,來加深對排序演算法的理解。1,氣泡排序 最簡單的排序演算法,從第乙個元素開始比較相鄰元素大小,如果前邊元素大於後邊元素則交換位置,否則將下標移到下乙個...

經典排序演算法總結

插入排序 選擇排序 歸併排序 排序方法 平均情況 最好最差 空間複雜度 穩定性氣泡排序o n2 o n 2 o n o n o n2 o n 2 o 1 o 1 穩定快速排序o nlogn o nlog n o nlogn o nlog n o n2 o n 2 o nlogn o nlog n 不...

排序演算法 總結與複習

直接插入排序 穩定排序 時間複雜度 o n2 void insertsort int data,int n if j i 1 data j 1 temp view code 二分法插入排序 穩定排序 o n2 void binsort int data,int n for int j i 1 j l...