資料結構與演算法——十個排序演算法
排序演算法是《資料結構與演算法》中最基本的演算法之一,排序演算法可以分為內部和外部排序。
內部排序:資料記錄在記憶體中進行排序。
外部排序:因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。
常見內部排序演算法:插入排序、希爾排序、選擇排序、氣泡排序、快速排序、堆排序、基數排序等。
用一個表格概括:
關於時間複雜度
平方階 (O(n2)) 排序 各類簡單排序:直接插入、直接選擇和氣泡排序。
線性對數階 (O(nlog2n)) 排序 快速排序、堆排序和歸併排序;
O(n1+§)) 排序,§ 是介於 0 和 1 之間的常數。 希爾排序
線性階 (O(n)) 排序 基數排序,此外還有桶、箱排序。
關於穩定性
穩定的排序演算法:氣泡排序、插入排序、歸併排序和基數排序。
不是穩定的排序演算法:選擇排序、快速排序、希爾排序、堆排序。
各個演算法詳解:
1. 資料結構與演算法——十個排序演算法之一 · 氣泡排序
2.資料結構與演算法——十個排序演算法之二 · 選擇排序
3.資料結構與演算法——十個排序演算法之三 · 插入排序
4.資料結構與演算法——十個排序演算法之四 · 希爾排序
5.資料結構與演算法——十個排序演算法之五 · 歸併排序
6.資料結構與演算法——十個排序演算法之六 · 快速排序
7.資料結構與演算法——十個排序演算法之七 · 堆排序
8.資料結構與演算法——十個排序演算法之八 · 計數排序
9.資料結構與演算法——十個排序演算法之九 · 桶排序
10.資料結構與演算法——十個排序演算法之十 · 基數排序
======================================================================================================================
&n