快排從右開始的緣由

當咱們把基準值設置在左邊時,爲何要從右邊先開始找?算法

一個數組爲:6 1 2 7 9 3 4 5 10 8數組

圖片摘至啊哈算法:spa

先從右往左:圖片

前面幾輪查找不貼了,到i==j時與基準數進行交換,交換以後保證左邊的數都小於基準值右邊的數都大於基準值im

 

從左往右:img

從有問題開始:i繼續前行當i==j時此時值爲9,可是條件限制j不能繼續前行找到比基準值小的,只能被迫停下co

此時進行交換:

交換完成並不能保證全部左邊的值都小於基準數,所以當key設置在左側時應當從右開始向左查找,若是想先從左往右查找,只需把key設置在右側便可。

相關文章
相關標籤/搜索