前面幾篇部落格分別羅列和總結了近期學習的幾種排序演算法,今天總結一下。
#排序演算法#概述、氣泡排序、選擇排序
#排序演算法#直接插入排序、希爾排序
#排序演算法#堆排序
#排序演算法#快速排序
#排序演算法#合併排序
計算的複雜度:依據排序資料量的大小(n),好的表現是o(nlogn),最差表現為o(n2)
系統資源的使用:包括計算機記憶體以及其他資源的使用,主要考慮計算機輔助記憶體的多少
穩定度幾種演算法的複雜度:
氣泡排序法:平均速度和最壞情況下的速度都為o(n2)
快速排序法:平均速度為o(nlogn),比氣泡排序法快,單在最壞的情況下與氣泡排序法相同,為o(n2)
簡單選擇排序法,平均速度和最壞情況下的速度都為o(n2)
堆排序法:平均速度和最壞情況下的速度都為o(nlogn)
希爾排序法:平均速度為o(n3/2),最壞情況下速度為o(n2)
合併排序法:平均速度和最壞情況下的速度都為o(nlogn)
幾種演算法的穩定度:
選擇排序演算法的幾個參考:
當資料為正序時,使用直接插入排序法、氣泡排序法和快速排序法
當n值比較小(如n<=50),可採用直接插入排序法或選擇排序法。當記錄規模比較小時直接插入排序較好;否則因為直接選擇移動的記錄數多於直接插入,應選擇直接選擇排序
當n值比較大時,則應採用時間複雜度為o(nlogn)的排序演算法,如快速排序、堆排序或合併排序
當待排序的關鍵字是隨機分布時,快速排序的平均時間最短
若要求排序穩定,則可選擇合併排序
33 排序演算法(6) 堆排序
之前所講的演算法,很多都是 o n2 的,造成這些演算法複雜度較高的主要原因是它們一次又一次地重複地進行這比較操作,並沒有利用之前的比較得到的結果。希爾排序對直接插入排序進行改進,使得這種方法的複雜度從 o n2 下降到 o nlog n 在這裡我們將接著介紹一種利用之前排序結果的方法,堆排序。若設...
演算法 排序1 排序
題目 給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給出正整數n 10 5 隨後一行給出n個 長整型範圍內的 整數,其間以空格分隔。在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得...
演算法總結 一 排序演算法總結
1.輸入 n個數,a1,a2,an 2.輸出 n個數,a1 a2 an 使得a1 a2 an 1.in place sort 不占用額外記憶體或占用常數記憶體 插入排序 選擇排序 氣泡排序 堆排序 快速排序 out place sort 歸併排序 計數排序 基數排序 桶排序。2.穩定排序 插入排序 ...