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

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

發布時間: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年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

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

閱讀全文

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

熱點內容
python數組分片 瀏覽:251
linux圖形化編程 瀏覽:175
阿里國際站app端怎麼裝修 瀏覽:528
微信小程序雲開發簡單搭建源碼 瀏覽:851
以後缺程序員嗎 瀏覽:293
jsp源碼不能運行 瀏覽:363
淘客助手源碼下載 瀏覽:733
如何使用app記賬報稅 瀏覽:562
python線程捕捉鍵盤 瀏覽:25
地推統計圖app怎麼做 瀏覽:162
android文件夾不能用了 瀏覽:857
加密軟體的日誌 瀏覽:892
腎病pdf 瀏覽:230
網站怎麼用本地伺服器 瀏覽:120
javadoc導入android 瀏覽:517
文件掃描成pdf 瀏覽:696
涼山火災救援命令 瀏覽:54
壓縮機三相檢測 瀏覽:861
linux怎麼安裝光碟 瀏覽:799
寬頻伺服器無響應是為什麼 瀏覽:226