常用排序演算法總結

2021-08-06 07:27:02 字數 832 閱讀 2049

排序演算法分為內部排序和外部排序,內部排序是資料記錄在記憶體中直接進行排序,而外部排序是因資料量大(記憶體中無法容納),需要訪問外存進行排序。通常所說的排序主要是指內部排序,常見的內部排序演算法有:氣泡排序、直接插入排序、簡單選擇排序、希爾排序、堆排序、歸併排序、快速排序、表排序和基數排序等。

複雜度分析:

排序演算法

平均時間複雜度

最壞情況下時間複雜度

額外空間複雜度

穩定性氣泡排序o(

n2) o(

n2) o(

1)穩定

直接插入排序o(

n2) o(

n2) o(

1)穩定

簡單選擇排序o(

n2) o(

n2) o(

1)不穩定

希爾排序o(

nd) o(

n2) o(

1)不穩定

堆排序o(n

logn

) o(

nlog

n)o(

1)不穩定

歸併排序o(

nlog

n)o(

nlog

n)o(

n)穩定

快速排序o(

nlog

n)o(

n2) o(

logn

) 不穩定

基數排序o(

p(n+

b)) o(

p(n+

b)) o(

n+b)

穩定

常用排序演算法總結

總結些常見的排序演算法,方便以後可以重用。資料量不大,為了表達方便就直接使用了陣列。int data null data new int 1.氣泡排序 氣泡排序,從小到大排序 for int i 0 i data.length i 氣泡排序就是說,排序的過程像水裡往上冒的氣泡一樣,每個數字代表乙個氣...

常用排序演算法總結

常用排序演算法總結 選擇排序 對於長度為n的陣列,選擇排序需要大約n2 2詞比較和n次交換。插入排序 對於隨機排列的長度為n且主鍵不重複的陣列 1 平均情況下,需要 n2 4次比較以及 n2 4次交換。2 最壞情況下,需要 n2 2次比較以及 n2 2次交換 3 最好情況下,需要n 1次比較以及0次...

常用排序演算法總結

注 所有排序都是寫的由小到大排序的情況 1.插入排序 1 直接插入排序 穩定 arr sortedindex 1 key 注意這裡的下標 sortedindex 1 2 希爾排序 不穩定 希爾排序好的增量序列的共同特徵 希爾排序演算法 fromid 1801475 type syn 最後乙個增量必須...