一、快速排序算法介紹:
快速排序(QuickSort)是排除穩定性因素後(hòu)最常用的排序。
快速排序是由東尼·霍爾所發(fā)展的一種(zhǒng)排序算法。在平均狀況下,排序 n 個項目要 Ο(nlogn) 次比較。在最壞狀況下則需要 Ο(n2) 次比較,但這(zhè)種(zhǒng)狀況并不常見。事(shì)實上,快速排序通常明顯比其他 Ο(nlogn) 算法更快,因爲它的内部循環(inner loop)可以在大部分的架構上很有效率地被實現出來。
快速排序使用分治法(Divide and conquer)策略來把一個串行(list)分爲兩(liǎng)個子串行(sub-lists)。快速排序又是一種(zhǒng)分而治之思想在排序算法上的典型應用。本質上來看,快速排序應該算是在冒泡排序基礎上的遞歸分治法。
快速排序的名字起(qǐ)的是簡單粗暴,因爲一聽到這(zhè)個名字你就(jiù)知道(dào)它存在的意義,就(jiù)是快,而且效率高!它是處理大數據最快的排序算法之一了。雖然 Worst Case 的時(shí)間複雜度達到了 O(n2),但是人家就(jiù)是優秀,在大多數情況下都(dōu)比平均時(shí)間複雜度爲 O(n logn) 的排序算法表現要更好(hǎo)。
快速排序的最壞運行情況是 O(n2),比如說(shuō)順序數列的快排。但它的平攤期望時(shí)間是 O(nlogn),且 O(nlogn) 記号中隐含的常數因子很小,比複雜度穩定等于 O(nlogn) 的歸并排序要小很多。所以,對(duì)絕大多數順序性較弱的随機數列而言,快速排序總是優于歸并排序。
二、快速排序算法步驟:
1.從數列中挑出一個元素作爲基準(pivot)。
2.重新排列數列,把所有的比基準小的數放在基準前面(miàn),反之放在後(hòu)面(miàn)(一樣大的數可放到任意一邊)完成(chéng)操作後(hòu)基準就(jiù)處在分區的中間位置。這(zhè)個稱爲分區(partition)操作。
3.通過(guò)遞歸(recursive)調用把小于基準元素和大于基準元素的子序列進(jìn)行排序。
三、快速排序算法可視化演示:
六、快速排序算法實例解析(信息學(xué)奧賽一本通例題)
走過(guò)十六年曆程的互聯網整合營銷機構,以技術與思想,提升您網站的廣度傳播與深度。
咨詢問題或預約面(miàn)談,可以通過(guò)以下方式聯系我們。
淄博企業網站建設淄博手機網站建設響應式網站建設營銷型網站建設淄博高端網站建設電子商務網站建設商城購物網站建設淄博大型網站開(kāi)發(fā)淄博門戶網站建設淄博行業網站建設品牌創意網站建設淄博房産網站建設
16年網絡服務經(jīng)驗專業網站建設團隊資深行業分析策劃完備的項目管理突出技術研發(fā)能(néng)力完善售後(hòu)服務體系豐富網絡運營經(jīng)驗前沿視覺設計能(néng)力獨立項目開(kāi)發(fā)能(néng)力服務行業超100+品牌與技術并重高端網站建設者