當咱們把基準值設置在左邊時,爲何要從右邊先開始找?算法
一個數組爲:6 1 2 7 9 3 4 5 10 8數組
圖片摘至啊哈算法:spa
先從右往左:圖片
前面幾輪查找不貼了,到i==j時與基準數進行交換,交換以後保證左邊的數都小於基準值右邊的數都大於基準值im
從左往右:img
從有問題開始:i繼續前行當i==j時此時值爲9,可是條件限制j不能繼續前行找到比基準值小的,只能被迫停下co
此時進行交換:
交換完成並不能保證全部左邊的值都小於基準數,所以當key設置在左側時應當從右開始向左查找,若是想先從左往右查找,只需把key設置在右側便可。