軟考中的數據結構
阿新 • • 發佈:2017-10-13
數據結構排序
排序所花費時間不受數據初始排列特性影響算法的是快速排序。
最好情況下時間復雜度為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)的排序方法——快速排序,堆排序,歸並排序
軟考中的數據結構