各排序演算法效能分析

2021-06-21 01:49:27 字數 893 閱讀 4585

插入排序:最壞時間始n^2

快速排序和插入排序的區別是:插入排序始將關鍵字插入已排序的子串行中,而快速排序始》對整個檔案,把基準關鍵字放到正確的位置上。

快排最壞時間依然是n^2, 平均時間始nlgn。

在堆排序:的過程中只需乙個輔助空間!所以空間 複雜度為 0(1)

堆排序的時間複雜度為 nlgn;

由於堆排序過程需要進行任意位置上記錄的移動:; 待篩結點值存放於輔助單元中

和交換!所以它是一種不穩定的

二路歸 並 排 序: 的時間複雜度為nlgn;

二路歸併排序時需要利用乙個同待排序陣列一樣

大小的輔助陣列"所以空間複雜度為哦o(n)同時"二路歸併排序也是一種穩定的排序方法&

希 爾 排 序: 的 事 件 復 雜 度 介 與nlgn 和 n^2 之間;空間輔助為o(1);

希爾排序是不穩定的排序演算法&

由以上對各種排序演算法效能的分析和比較 "我們 可

以得出如下結論"

當排序記錄數n較大時若要求排序穩定則 採用歸併排序

當 排 序 記 錄 數 n 較 大 "關 鍵 字 會 出 現 正 (逆) 序 情 行,則可以用堆排序和

歸併排序;

當排序記錄數n較大時若要求排序穩定則 採用歸併排序

當 排 序 記 錄 數 n 較 大 "關 鍵 字 會 出 現 正 (逆) 序 情 行,則可以用堆排序和

歸併排序;

當 排 序 記 錄 數  較 大 "關 鍵 字 分 布 隨 機 "而 且 不要求穩定排序,則可用快》速排序;

當 排 序 記 錄 數 n 較 小 "記 錄 已 接 近 有 序 或 隨 機 分

布時"又要求排序穩定"可採用直接插入排序

當 排 序 記 錄 數 n 較 小 "且 對 穩 定 性 不 作 要 求 時 可採用直接選擇排序

各排序演算法總結

下面先來介紹內部排序 內部排序主要有八大排序演算法 氣泡排序,快速排序,直接插入排序,希爾排序,簡單選擇排序,堆排序,歸併排序,基數排序。以下討論均預設為公升序排序。氣泡排序 第一次排序,從第乙個元素到第n 1個,依次比較與下一元素的大小,若比下一元素大則交換兩元素位置。每次排序確定乙個最大值。這樣...

各排序演算法對比

比較名稱 時間複雜度 空間複雜度 是否穩定 是否與序列初始狀態有關 適用情況 儲存結構 備註直接插入排序 最好o n 平均o n 2 最壞o n 2 o 1 是是 n較小 小於等於50 初始狀態基本有序,順序儲存 鏈式儲存 折半插入排序 o n 2 o 1 是比較次數無關 移動次數有關 順序儲存 僅...

各排序演算法的效能(複雜度)

1.時間複雜度 時間複雜度可以認為是對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。1 常見的時間複雜度有 常數階o 1 對數階o log 2 n 線性階o n 線性對數階o nlog 2 n 平方階o n2 2 時間複雜度o 1 演算法中語句執行次數為乙個常數,則時間複雜度為o 1...