導航:首頁 > 源碼編譯 > 快速排序演算法的時間復雜度分析

快速排序演算法的時間復雜度分析

發布時間:2024-10-06 22:07:19

❶ 快速排序的時間復雜度

快排的平均時間為:T(n) = k*n*lnn
時間復雜度為:O(n*logn)

❷ 快速排序演算法在平均情況下的時間復雜度為 求詳解

時間復雜度為O(nlogn) n為元素個數
1. 快速排序的三個步驟:
1.1. 找到序列中用於劃分序列的元素
1.2. 用元素劃分序列
1.3. 對劃分後的兩個序列重復1,2兩個步驟指導序列無法再劃分
所以對於n個元素其排序時間為
T(n) = 2*T(n/2) + n (表示將長度為n的序列劃分為兩個子序列,每個子序列需要T(n/2)
的時間,而劃分序列需要n的時間)
而 T(1) = 1 (表示長度為1的序列無法劃分子序列,只需要1的時間即可)
T(n) = 2^logn + logn * n (n被不斷二分最終只能二分logn次(最優的情況,每次選取
的元素都均分序列))
= n + nlogn
因此T(n) = O(nlogn)
以上是最優情況的推導,因此快速排序在最優情況下其排序時間為O(nlogn),通常平均情況
我們也認為是此值。
在最壞情況下其會退化為冒泡排序,T(n) = T(n - 1) + n (每次選取的元素只能將序列劃分為
一段,即自身是 最小元素或最大元素)
因此T(n) = n * (n-1) / 2 相當於O(n^2)

❸ 快速排序法的平均時間復雜度是多少

快速排序法的時間復雜度是nlogn(n×log以2為底n的對數)

拓展:

快速排序(Quicksort)是對冒泡排序的一種改進。

快速排序由C. A. R.
Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

附各種排序法的時間復雜度如下:

閱讀全文

與快速排序演算法的時間復雜度分析相關的資料

熱點內容
串口發送命令 瀏覽:842
程序員每天上班很累 瀏覽:279
javasetlayout 瀏覽:91
空調壓縮機用多大的壓力 瀏覽:993
python爬蟲視頻教程下載 瀏覽:237
php53以上 瀏覽:810
iphone手機怎麼用安卓應用 瀏覽:492
本地文件如何傳到華為雲伺服器 瀏覽:383
加密ic卡在電腦怎麼復制 瀏覽:522
鄞州繁裕三村附近啟蒙編程學校 瀏覽:555
單片機里code什麼意思 瀏覽:182
linux修改umask 瀏覽:536
編程鎖的發展 瀏覽:346
唯詞app怎麼改密碼 瀏覽:72
魔獸世界表情命令 瀏覽:985
智能還款信用卡源碼 瀏覽:554
zoo文件夾 瀏覽:762
安卓2k21如何下載 瀏覽:648
某年某月的天數python 瀏覽:913
廣度優先演算法的復雜度 瀏覽:399