www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 技術(shù)學院 > 技術(shù)前線
[導讀]快速排序通過一趟排序?qū)⒋判蛄蟹指畛瑟毩⒌膬刹糠郑渲幸徊糠中蛄械年P(guān)鍵字均比另一部分序列的關(guān)鍵字小,則可分別對這兩部分序列繼續(xù)進行排序,以達到整個序列有序的目的。

快速排序通過一趟排序?qū)⒋判蛄蟹指畛瑟毩⒌膬刹糠?,其中一部分序列的關(guān)鍵字均比另一部分序列的關(guān)鍵字小,則可分別對這兩部分序列繼續(xù)進行排序,以達到整個序列有序的目的。

快速排序的基本思想是采用分治法(Divide and Conquer)來將一個數(shù)組排序。它選擇一個元素作為“基準”(pivot),通過一趟排序?qū)⒋判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比基準小,另一部分的所有數(shù)據(jù)都比基準大,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列。

快速排序詳細的執(zhí)行步驟如下:

從序列中挑出一個元素,稱為 “基準”(pivot);

重新排序序列,所有比基準值小的元素擺放在基準前面,所有比基準值大的元素擺在基準的后面(相同的數(shù)可以到任一邊)。在這個分區(qū)退出之后,該基準就處于序列的中間位置。這個稱為分區(qū)(partition)操作;

遞歸地(recursive)把小于基準值元素的子序列和大于基準值元素的子序列排序。

算法圖解


快速排序的深度解讀

問題解疑

快速排序可以怎樣選擇基準值?

第一種方式:固定位置選擇基準值;在整個序列已經(jīng)趨于有序的情況下,效率很低。

第二種方式:隨機選取待排序列中任意一個數(shù)作為基準值;當該序列趨于有序時,能夠讓效率提高,但在整個序列數(shù)全部相等的時候,隨機快排的效率依然很低。

第三種方式:從區(qū)間的首、尾、中間,分別取出一個數(shù),然后對比大小,取這 3 個數(shù)的中間值作為基準值;這種方式解決了很多特殊的問題,但對于有很多重復值的序列,效果依然不好。

快速排序有什么好的優(yōu)化方法?

首先,合理選擇基準值,將固定位置選擇基準值改成三點取中法,可以解決很多特殊的情況,實現(xiàn)更快地分區(qū)。

其次,當待排序序列的長度分割到一定大小后,使用插入排序。對于待排序的序列長度很小或基本趨于有序時,插入排序的效率更好。

在排序后,可以將與基準值相等的數(shù)放在一起,在下次分割時可以不考慮這些數(shù)。對于解決重復數(shù)據(jù)較多的情況非常有用。

在實現(xiàn)上,遞歸實現(xiàn)的快速排序在函數(shù)尾部有兩次遞歸操作,可以對其使用尾遞歸優(yōu)化(簡單地說,就是尾位置調(diào)用自身)。

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

在工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗如同通信網(wǎng)絡的"免疫系統(tǒng)",某石化廠DCS系統(tǒng)曾因CRC計算錯誤導致0.3%的數(shù)據(jù)包丟失,引發(fā)連鎖控制故障。本文將深入解析CRC-16/MODBUS算法原理,對比軟件...

關(guān)鍵字: Modbus RTU CRC 算法

加密算法分對稱加密和非對稱算法,其中對稱加密算法的加密與解密密鑰相同,非對稱加密算法的加密密鑰與解密密鑰不同,此外,還有一類不需要密鑰的散列算法。

關(guān)鍵字: 算法 嵌入式

在現(xiàn)代數(shù)字系統(tǒng)設計中,將算法高效地轉(zhuǎn)化為 RTL(寄存器傳輸級)實現(xiàn)是 FPGA 工程師的核心任務之一。這一過程不僅需要對算法有深入理解,還需掌握 FPGA 的硬件特性和設計技巧。本文將詳細介紹從算法到 RTL 實現(xiàn)的關(guān)...

關(guān)鍵字: 算法 寄存器傳輸級 數(shù)字系統(tǒng)

從本質(zhì)上講,算法是一種有條不紊、分步驟解決問題或完成任務的方法。無論是簡單的數(shù)字相加公式,還是復雜的機器學習協(xié)議,算法都是軟件應用的基礎,確保任務能夠高效有效地執(zhí)行。

關(guān)鍵字: 算法 嵌入式

在自動駕駛技術(shù)的發(fā)展歷程中,激光雷達(LiDAR)宛如一顆備受矚目的新星,其獨特的技術(shù)特性使其成為追求高安全性、高可靠性自動駕駛方案的首選。然而,這顆新星并非毫無爭議,“價格昂貴、結(jié)構(gòu)復雜、算法難度高” 等標簽,也讓一些...

關(guān)鍵字: 自動駕駛 激光雷達 算法

快速排序作為經(jīng)典的排序算法,以其高效的平均時間復雜度(O(n log n))廣泛應用于各類場景。然而,其穩(wěn)定性受分區(qū)策略影響較大,尤其在處理大量重復元素或特定數(shù)據(jù)分布時,傳統(tǒng)實現(xiàn)可能退化為O(n2)的極端情況。本文將探討...

關(guān)鍵字: 快速排序 C語言

4月2日消息,近日,有關(guān)智能駕駛而引發(fā)的交通事故在網(wǎng)絡上引起了大家的熱烈討論,對此,央視網(wǎng)評指出,“智能駕駛”,也請握緊方向盤。

關(guān)鍵字: 算法 智能駕駛

所謂排序算法,即通過特定的算法因式將一組或多組數(shù)據(jù)按照既定模式進行重新排序。這種新序列遵循著一定的規(guī)則,體現(xiàn)出一定的規(guī)律,因此,經(jīng)處理后的數(shù)據(jù)便于篩選和計算,大大提高了計算效率。對于排序,我們首先要求其具有一定的穩(wěn)定性,...

關(guān)鍵字: 排序算法 算法

算法,作為解決問題的精確描述,是描述策略機制的系統(tǒng)方法。讓我們在周末輕松探討五個具有深遠影響的算法:Metropolis-Hastings算法、單純形法、快速傅立葉變換、快速排序算法,以及計算特征值的QR算法。這些算法在...

關(guān)鍵字: 算法 快速排序算法

服務需要保護自己,以免被太多的請求淹沒(無論是惡意或無意的),從而保持可用性。舉個生活中的例子,某個景區(qū),平時可能根本沒什么人前往,但是一旦到了國慶假日就人滿為患,這時景區(qū)管理人員就會實施一系列的限流舉措,來限制進入的人...

關(guān)鍵字: 限流 算法
關(guān)閉