1. 程式人生 > 實用技巧 >如何理解快速排序

如何理解快速排序

>>> hot3.png

6fdf17cba6211e071d616b1987f01c5e71a.jpg

如圖所示,

這是參考別的視訊做出來的理解思路,我覺得這種辦法我理解的最好,一下子就點透了,思路總結就是:

找一個空白位置 當做軸數字(一般就是第一個數字)的對比位置 則 軸數字位置就空出來了,依次按照

從後往前找一個比軸數字小的 塞入空白位置,此時空出來一個新的空白位置

從前往後找一個比軸數字大的 塞入空白位置,此時空出來一個新的空白位置

。。。

之後按照上邊的兩部,直到進行完畢,則軸數字塞入最後的空白位置,此時,陣列被分割成兩個新的陣列,軸數字之前一個 軸數字之後一個!

按照上邊的順序再分別對兩個新陣列進行排序,還是按照 先找軸數字,留出空白,從後往前找比軸數字小的,從前往後找比軸數字大的。。。之後塞入軸數字的順序進行,直到最後,排序完成!

轉載於:https://my.oschina.net/rainwz/blog/3031458