天天看點

一步一步寫算法(之快速排序)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。  聯系信箱:feixiaoxing @163.com】

    快速排序是程式設計中經常使用到的一種排序方法。可是很多朋友對快速排序有畏難情緒,認為快速排序使用到了遞歸,是一種非常複雜的程式,其實未必如此。隻要我們使用好了方法,就可以自己實作快速排序。

    首先,我們複習一下,快速排序的基本步驟是什麼:

    1、 判斷輸入參數的合法性

    2、把數組的第一個資料作為比較的原點,比該資料小的資料排列在左邊,比該資料大的資料排列在右邊

    3、按照(2)的方法分别對左邊的數組和右邊的資料進行和(2)一樣的資料排列

    那麼實際編寫代碼中,應該怎麼做呢?

    a)首先,判斷資料的合法性?

    b)尋找中間數,分别對左邊和右邊的資料進行排序

    c)那麼這裡的中間數應該怎麼安排呢?

    注意:這裡gQuickSort是一個全局數組,主要是為了作為排序的臨時數組使用,實際環境中大家可以靈活運用各種方法。   

     d)基本的快速排序就完成了,那我們怎麼測試呢?我們可以編寫幾個簡單的測試用例?

【預告: 下一篇部落客要介紹合并排序的内容】

繼續閱讀