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

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

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

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

閱讀全文

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

熱點內容
android記事本源碼 瀏覽:403
安卓11小游戲怎麼玩法 瀏覽:186
gif有損壓縮 瀏覽:929
windows下安裝linux命令操作 瀏覽:840
米家app怎麼設置進門亮燈 瀏覽:650
任我行伺服器為什麼會影響截圖 瀏覽:294
安卓留言板怎麼刪除 瀏覽:16
做大廠程序員有什麼感受 瀏覽:240
php文件只讀 瀏覽:774
紅色警戒3命令修改器112 瀏覽:433
安卓稅收和蘋果稅是什麼意思 瀏覽:446
快速排序演算法的時間復雜度分析 瀏覽:112
大齡程序員困境 瀏覽:270
手機號忘了怎麼登錄農行app 瀏覽:573
商品信息管理系統php 瀏覽:9
效果器app怎麼無線連接 瀏覽:404
clinux線程鎖 瀏覽:851
怎麼看新手機安卓充電器是不是原裝 瀏覽:294
32單片機f4點燈源碼 瀏覽:223
車載安卓導航開發者選項怎麼開啟 瀏覽:694