各種常用排序演算法
類別排序方法
時間複雜度
空間複雜度
穩定性複雜性
特點最好
平均最壞
輔助儲存
簡單插入
排序直接插入
o(n)
o(n2)
o(n2)
o(1)
穩定簡單
希爾排序
o(n)
o(n1.3)
o(n2)
o(1)
不穩定複雜
選擇排序
直接選擇
o(n)
o(n2)
o(n2)
o(1)
不穩定堆排序
o(n*log2n)
o(n*log2n)
o(n*log2n)
o(1)
不穩定複雜
交換排序
氣泡排序
o(n)
o(n2)
o(n2)
o(1)
穩定
簡單1、氣泡排序是一種用時間換空間的排序方法,n小時好
2、最壞情況是把順序的排列變成逆序,或者把逆序的數列變成順序,最差時間複雜度o(n^2)只是表示其操作次數的數量級
3、最好的情況是資料本來就有序,複雜度為o(n)
快速排序
o(n*log2n)
o(n*log2n)
o(n2)
o(log2n)~o(n)
不穩定複雜
1、n大時好,快速排序比較占用記憶體,記憶體隨n的增大而增大,但卻是效率高不穩定的排序演算法。
2、劃分之後一邊是乙個,一邊是n-1個,
這種極端情況的時間複雜度就是o(n^2)
3、最好的情況是每次都能均勻的劃分序列,o(n*log2n)
歸併排序
o(n*log2n)
o(n*log2n)
o(n*log2n)
o(n)
穩定複雜
1、n大時好,歸併比較占用記憶體,記憶體隨n的增大而增大,但卻是效率高且穩定的排序演算法。
各種排序演算法時間複雜度
各種排序演算法比較 各種常用排序演算法 類別排序方法 時間複雜度 空間複雜度 穩定性複雜性 特點最好 平均最壞 輔助儲存 簡單插入 排序直接插入 o n o n2 o n2 o 1 穩定簡單 希爾排序 o n o n1.3 o n2 o 1 不穩定複雜 選擇排序 直接選擇 o n o n2 o n2...
各種排序演算法的時間複雜度
選擇排序 快速排序 希爾排序 堆排序不是穩定的排序演算法,氣泡排序 插入排序 歸併排序和基數排序是穩定的排序演算法。排序演算法不穩定的含義是 在排序之前,有兩個數相等.但是在排序結束之後,它們兩個有可能改變順序.比如說 在乙個待排序佇列中,a和b相等,且a排在b的前面,而排序之後,a排在了b的後面....
各種排序演算法的時間複雜度
當我們評價乙個演算法的時間效能時,主要標準就是演算法的漸近時間複雜度,在演算法分析時,經常是將漸近時間複雜度t n o f n 簡稱為時間複雜度,其中的f n 一般是演算法中頻度最大的語句頻度。演算法中語句的頻度不僅與問題規模有關,還與輸入例項中各元素的取值相關。但是我們總是考慮在最壞的情況下的時間...