各種內排序演算法效能比較

2021-08-26 18:19:22 字數 1030 閱讀 5063

各種內排序演算法效能比較(個人總結)

穩定性最好情況

最壞情況

平均空間複雜度

確定最終位置

簡單選擇排序(屬於選擇排序)

不穩定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...