各種內排序演算法效能比較(個人總結)穩定性最好情況
最壞情況
平均空間複雜度
確定最終位置
簡單選擇排序(屬於選擇排序)
不穩定o(n²) n-1趟
o(n²) n-1趟
o(n²) n-1趟
o(1)
一趟排序後能確定某個元素的最終位置
直接插入排序
穩定o(n) n-1趟
o(n²) n-1趟(反向有序)
o(n²) n-1趟
o(1)
一趟排序後不能確定某個元素的最終位置
氣泡排序(屬於交換排序)
穩定o(n) 1趟
o(n²) n-1趟
o(n²) n/2趟
o(1)
一趟排序後能確定某個元素的最終位置
快速排序(屬於交換排序)
不穩定o(nlog2底n)
o(n²) n-1趟(正向/反向有序)
o(nlog2底n)
o(log2底n)~o(n)
一趟排序後能確定某個元素的最終位置
兩路合併排序
穩定o(nlog2底n)log2底n向上取整 趟
o(nlog2底n) log2底n向上取整 趟
o(nlog2底n) log2底n向上取整 趟
o(n)
一趟排序後不能確定某個元素的最終位置
堆排序(屬於選擇排序)
不穩定o(nlog2底n) n-1 趟
o(nlog2底n) n-1趟
o(nlog2底n) n-1趟
o(1)
一趟排序後能確定某個元素的最終位置
各種內排序演算法的實現及效能比較
主要都是教材上的 只是用到了time.h庫函式以及其中的clock t類 include include includeusing namespace std templatevoid swap t a,t b templatevoid selectsort t a,int n 簡單選擇排序 tem...
各種排序演算法的時間效能比較
include include using namespace std 氣泡排序 原理 1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面...
各種排序方法的效能比較
測試環境說明 win xp下,vs2008,主頻 core2 雙核2.53ghz 下面是測試的 using system using system.collections.generic using system.linq using system.text using system.collect...