排序演算法總結對比

2022-09-16 05:12:09 字數 1439 閱讀 9980

0.十大經典排序演算法

1.排序演算法分類

非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o(nlogn),因此稱為非線性時間比較類排序。

線性時間非比較類排序:不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。

2.時間 / 空間複雜度對比

演算法名稱 

時間複雜度  

空間複雜度

排序方式 

穩定性 

最佳平均

最差最差

氣泡排序(bubblesort)

o(n)

o(n^2)

o(n^2)

o(1)

in-place

穩定選擇排序(selectionsort)

o(n^2)

o(n^2)

o(n^2)

o(1)

in-place

不穩定插入排序(insertionsort)

o(n)

o(n^2)

o(n^2)

o(1)

in-place

穩定希爾排序(shellsort)

o(n)

o((nlog(n))^2)

o((nlog(n))^2)

o(1)

in-place

不穩定歸併排序(mergesort)

o(nlog(n))

o(nlog(n))

o(nlog(n))

o(n)

out-place

穩定快速排序(quicksort)

o(nlog(n))

o(nlog(n))

o(n^2)

o(log(n))

in-place

不穩定堆排序(heapsort)

o(nlog(n))

o(nlog(n))

o(nlog(n))

o(1)

in-place

不穩定計數排序(countsort)

o(n+k)

o(n+k)

o(n+k)

o(k)

out-place

穩定桶排序(bucketsort)

o(n+k)

o(n+k)

o(n^2)

o(n)

out-place

穩定基數排序(radixsort)

o(nk)

o(nk)

o(nk)

o(n+k)

out-place

穩定名詞解釋:

排序演算法總結對比

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

0 演算法總結對比 更新中

排序過程元素位置移動的程度 演算法移動的時間衡量 通過演算法遍歷元素個數體現 演算法是否需要額外的空間 名稱效能 演算法思想 演算法型別 時間複雜度 平均時間複雜度 空間複雜度 穩定性適用資料場景 選擇排序 一般元素移位節約空間消耗時間 比較型o n o n o 1 不穩定不常用 氣泡排序 一般比較...

排序演算法對比

2019 september 07 排序演算法對比 排序演算法 平均時間複雜度 最好情況 最壞情況 空間複雜度 原址排序 比較排序 穩定插入排序 theta left n right theta left n right theta left n right mathbf left 1 right ...