1. 程式人生 > >軟考中的數據結構

軟考中的數據結構

數據結構排序

排序所花費時間不受數據初始排列特性影響算法的是快速排序。

最好情況下時間復雜度為o(n)的算法是直接插入排序法。

總結:

排序方法 平均時間 最好情況 最壞情況 輔助存儲 穩定性

選擇排序 o(n^2) o(n^2) o(n^2) o(1) 不穩定

插入排序 o(n^2) o(n) o(n^2) o(1) 穩定

冒泡排序 o(n^2) o(n^2) o(n^2) o(1) 穩定

希爾排序 o(n^1.25) -- -- o(1) 不穩定

快速排序 o(nlogn) o(nlogn)o(n^2) o(nlogn) 不穩定

堆排序 o(nlogn) o(nlogn) o(nlogn) o(1) 穩定

歸並排序 o(nlogn) o(nlogn) o(nlogn) o(n) 穩定

基數排序 o(d+(n+rd))o(d+(n+rd))o(d+(n+rd))o(rd) 穩定

一些結論:

若待排序的記錄數目較小時,可采用插入排序和選擇排序;

若待排序記錄按關鍵字基本有序,則宜采用直接插入排序或冒泡排序;

當n很大且關鍵字的位數較少時,采用鏈式基數排序較好;

若n較大時,則應采用時間復雜度為o(nlogn)的排序方法——快速排序,堆排序,歸並排序

軟考中的數據結構