算法基礎之快速排序(二)
話不多說,瞭解快速排序的原理
快速排序(Quicksort)是對冒泡排序的一種改進。
它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
–摘自百度
假設有一個無序數組需要從小到大進行排序,快排的思路就是 從當前數組中,找到一個元素作爲基準比較值(key),分別從兩個方向進行比較。從後往前找,比key小元素放在數組前面。然後從前往後找,比key大的元素放在數組後面。最終兩個方向交匯到中間,讓key交換到數組的中間位置。
從下面代碼可以看出,取一個基準值,然後先從前往後找,再從後往前找,最後遞歸兩個數組,合併數組就可以得出最後的結果