1、插入排序
最佳情況:o(n)
最差情況:o(nlgn)
平均情況:o(nlgn)
2、選擇排序
在所有情況下的時間複雜度均為o(n*n)
3、氣泡排序
最佳情況:o(n)
最差情況:o(n*n)
平均情況:o(n*n)
4、歸併排序
所有情況下的時間複雜度均為o(nlgn)
5、快速排序
最佳情況:o(nlgn)
最差情況:o(n*n)
平均情況:o(nlgn)
6、堆排序
所有情況下的時間複雜度均為o(nlgn)
注:
(a) 比較排序
比較排序:在排序的最終結果中,各元素的次序依賴於它們之間的比較。前面6種演算法都是比較排序演算法。
(b) 排序演算法的下界
在最壞情況下,任何比較排序演算法都需要做歐公尺茄(nlgn)次比較。
(c) 堆排序和歸併排序都是漸進最優的比較排序演算法。
基本排序演算法時間複雜度
演算法 best b比較次數 b移動次數 b時間複雜度 worst w比較次數 w移動次數 w時間複雜度 穩定性空間輔助 氣泡排序正序n 10o n 逆序n n 1 2 n n 1 2 o n2 穩定o 1 簡單選擇排序正序n n 1 20o n2 逆序n n 1 2 n 1o n2 不穩定o 1 ...
演算法時間複雜度分析
定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 求解演算法的時間複雜度的具體步驟是 1 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。2 計算基本語句的執行次數的數量級 ...
演算法分析時間複雜度
對乙個演算法的分析,很多時候我們更關心演算法執行的時間複雜度。演算法的時間複雜度中,我們關心演算法執行的時間上界。即大o階分析方法。時間複雜度的分類 1 沒有迴圈遞迴的基本都是常數階。2 有一層迴圈的就是線性階。for int i 0 i dosth 3 對數階 一般類似如下 while i i i...