排序演算法的時間效率:
平均情況
最好情況
最壞情況
基數排序
歸併排序
快速排序
希爾排序
插入排序
選擇排序
o(n)
o(n*logn)
o(n*logn)
o(n^1.5)
o(n^2)
o(n^2)
o(n)
o(n*logn)
o(n*logn)
o(n)
o(n)
o(n^2)
o(n)
o(n*logn)
o(n^2)
o(n^1.5)或o(n^2)
o(n^2)
o(n^2)
函式的增長率函式:n
n*logn
n^1.5
n^210^2
10^2
10^3
10^4
10^3
10^6
10^4
10^6
10^8
10^5
10^10
10^6
10^9
10^12
排序效率分析:當n為小一點的數時效率o(n^2)的排序演算法還行,當n較大時,就不能使用了。當n為100時希爾排序在平均情況下幾乎和快速排序一樣快,但當n為10^6時,平均情況快排快的多。如果元素個數相對較少,或者接近有序,則插入排序時一種不錯的選擇。否則快排通常更可取。歸併排序很適合用於元素太多無法全部放進記憶體而存放在外部檔案中的情形。
排序的型別:
插入排序
直接插入排序
二路插入排序
希爾排序
快速排序
選擇排序
簡單選擇排序(直接選擇排序)
樹形選擇排序
堆排序歸併排序
基數排序
多關鍵字排序
鏈式基數排序
排序演算法比較
本章中已經研究並仔細分析了多個內部排序方法。對於這些內部排序方法之間的比較,主要從以下幾個方面綜合考慮 時間複雜度 空間複雜度 演算法穩定性 演算法簡單性 待排序記錄數 n的大小 記錄本身的資訊量等。選擇n 個整數組成一些隨機排序,各種內部排序方法的實際時間如圖 7 10 所示。從時間複雜度看,所有...
排序演算法比較
排序方法 最好時間 平均時間 最壞時間 輔助儲存 穩定性備註 簡單選擇排序 o n2 o n2 o n2 o 1 不穩定n小時較好 直接插入排序 o n o n2 o n2 o 1 穩定大部分已有序時較好 氣泡排序 o n o n2 o n2 o 1 穩定n小時較好 希爾排序 o n o nlogn...
比較排序演算法
常用的比較排序演算法有 直接插入排序,希爾排序,選擇排序,堆排序,氣泡排序,快速排序,歸併排序等。它們的時間複雜度及空間複雜度為 實現 如下 includeusing namespace std include include 插入排序 void insertsort int a,size t si...