快速排序算法採用了一種分治的策略,一般稱其爲分治法(Divide-and-ConquerMethod)。算法
該方法的基本思想是:ide
1.先從數列中取出一個數做爲基準數,通常選數列第一個或者最後一個。指針
2.分區過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。blog
3.再對左右區間重複第二步,直到各區間只有一個數。排序
步驟:搜索
1.選擇待排序列表中第一個做爲key,設置兩個指針low 和heigh,low=1,height=L.length;方法
2.從表的最右側位置開始依次向左搜索,找到第一個比key小的記錄,將其移到low處;im
3.從表的最左側位置開始依次向右搜索,找到第一個比key小的記錄,將起移到key處;margin
4.重複步驟2和3,直至low==height,此時low或height的位置爲key的最終位置,原表被分爲兩個子表。img
例子以下圖: