快排最好最壞情況分析


排序算法一般都是筆試和面試中的重點,這里我們簡單簡單總結一下常用的排序算法——快速排序

 

快速排序在一趟排序中將數字分割成為獨立的兩部分,左邊一部分小於軸值,右邊一部分大於軸值,軸值的選擇理論上可以選擇數組中的任何一個數組,我們在這里考慮選擇第一個數字。然后對兩部分序列重復進行上述操作,快速排序可以用遞歸來完成

時間復雜度:最好情況O(n*logn)——Partition函數每次恰好能均分序列,其遞歸樹的深度就為.log2n.+1(.x.表示不大於x的最大整數),即僅需遞歸log2n次; 最壞情況O(n^2),每次划分只能將序列分為一個元素與其他元素兩部分,這時的快速排序退化為冒泡排序,如果用數畫出來,得到的將會是一棵單斜樹,也就是說所有所有的節點只有左(右)節點的樹;平均時間復雜度O(n*logn)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM