本篇文章來聊一聊快速排序,快速排序其實非常簡單,但仍有很多同學不能理解,究其原因,是大家沒能真正體會排序的原理,如果你對快速排序還不太了解,那麼這篇文章你絕對不能錯過。先說說快速排序的基本思想:
任取乙個元素為中心
將序列中所有比它小的元素放在其前面,比它大的元素放在其後面,從而形成兩個子表
對兩個子表分別做快速排序,直至子表中僅剩乙個元素
理解了思想後,我們通過**來感受一下快速排序的全過程。
現有如下的乙個序列:
如何對其進行快速排序呢?我們需要再準備乙個等長的空序列,並將第乙個元素49作為中心,然後分別與後面的元素進行比較。
比如第二個元素38小於49,則38應放在49的左邊,這裡我們就可以先將元素值49進行儲存,然後將38放到空序列的首位:
接著比較,發現65大於49,則需將65放到空序列的末位:
繼續比較,發現97大於49,則需將97也放到空序列的末位:
排序演算法 快速排序演算法
網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...
演算法 排序演算法 快速排序
快速排序是對冒泡法排序的一種改進。快速排序演算法 的基本思想是 將所要進行排序的數分為左右兩個部分,其中一部分的所有資料都比另外一 部分的資料小,然後將所分得的兩部分資料進行同樣的劃分,重複執行以上的劃分操作,直 到所有要進行排序的資料變為有序為止。可能僅根據基本思想對快速排序的認識並不深,接下來以...
排序演算法 快速排序
快速排序使用分治法 divide and conquer 策略來把乙個序列 list 分為兩個子串行 sub lists 步驟為 1.從數列中挑出乙個元素,稱為 基準 pivot 2.重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分...