0 演算法總結對比 更新中

2021-10-10 16:27:24 字數 1369 閱讀 9950

排序過程元素位置移動的程度

演算法移動的時間衡量 通過演算法遍歷元素個數體現

演算法是否需要額外的空間

名稱效能

演算法思想

演算法型別

時間複雜度

平均時間複雜度

空間複雜度

穩定性適用資料場景

選擇排序

一般元素移位節約空間消耗時間

比較型o(n²) 

o(n²) 

o(1)

不穩定不常用

氣泡排序

一般比較型

o(n²)

o(n²)

o(1)

不穩定不常用

插入排序

一般比較型

o(n²)

o(n²)

o(1)

穩定不常用

快速排序

一般比較型

o(nlogn)-o(n²)

o(nlogn)

o(1)

不穩定比較型排序場景可使用

基數排序

優秀分配式排序

o(d*n)

o(d*n)

o(n)

穩定計數排序

優秀

非比較型

o(n+k)

o(n+k)

o(k)

穩定

資料範圍小且集中,比如全國人口年紀排序

歸併排序

一般分治法

比較型o(nlogn)-o(n)

o(nlogn)

o(n)

穩定不推薦效能一般實現複雜

堆排序一般

比較型o(n²)-o(nlogn)

o(nlogn)

o(1)

不穩定不推薦結構複雜效率一般

桶排序

優秀

分配式排序

o(n²)-o(n)

o(n)

o(n)

穩定

比較讚且簡單通用的排序演算法

希爾排序

錦標賽排序

參考文件

runoob演算法

各種演算法效率測試

上面列舉演算法原始碼實現

排序演算法總結對比

常用排序演算法分析 void swap int x,int y 氣泡排序 時間複雜度為o n 2 兩兩比較,交換,每次內層迴圈在未排序序列中找出最大值放到已排序中 對於部分有序的序列來說,效率較高 穩定 void bubble sort int arr,int start,int end if po...

排序演算法總結對比

0.十大經典排序演算法 1.排序演算法分類 非線性時間比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排...

Android 常用測試框架總結對比

android的測試框架,除了需要適合做ui測試,還需要保證選取的框架有以下幾點特性 robotium athrun tmts monkeyrunner uiautomator 實際使用後,發現uiautomator沒有提供測試結果報告,這一點是硬傷啊 不過還是有解決辦法的,把uiautomator...