国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
快速排序

桶排序占用空間太大?快速排序太慢?有沒有更好的排序算法呢?答案肯定是有的。

它就是快速排序。



快速排序的基本思想是:通過一趟排序將要排序的數(shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序。

快速排序典型的用到了分治算法,至于分治算法是什么以后再為大家來介紹。

學懂快速排序只需要三步:

  1. 先從數(shù)列中取出一個數(shù)作為基準數(shù);

  2. 分區(qū)過程,將比這個數(shù)大的數(shù)全放到它的右邊,小于或等于它的數(shù)全放到它的左邊;

  3. 再對左右區(qū)間重復第二步,直到各區(qū)間只有一個數(shù);

我們來規(guī)定一下基準數(shù),在這里我們把待排序數(shù)列的第一個數(shù)字當做基準數(shù)。

選好了基準數(shù)如何分區(qū)呢?

我們可以寫一個雙指針掃描。左指針找大于基準數(shù)的數(shù)字,右指針找小于基準數(shù)的數(shù)字,如果右指針指向元素的下標大于左指針指向元素的小標,那么就交換元素。再把基準數(shù)交換到分界處,然后把這段數(shù)分成兩段,一段是[頭,基準數(shù)],另一段是[基準數(shù)+1,尾]。

可以上代碼了

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
經(jīng)典算法(4)一文搞懂什么是 快速排序
8大排序算法圖文講解
Python | 數(shù)據(jù)結構 - 快速排序和歸并排序
Python|圖述冒泡
Java常見排序算法詳解——選擇排序
三分鐘!Go讀懂經(jīng)典算法(快速排序)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服