li = [12,1,13,8,16,2,6,11] def ks(li,l,r) l是开始索引,r 是结束索引
j,i
12 1 13 8 16 2 6 取js = li[r]为11 j=l for i in range(l,r)
j i 当li[i]小于基数js时,li[i]和li[j]交换位置,并且j+=1
12 1 13 8 16 2 6 大于 j不变,i继续遍历
j i
1 12 13 8 16 2 6 遍历结束 li[j],li[r] = li[r],li[j],此时基数索引为j,或者 li.index(js)
j i
1 12 13 8 16 2 6
j i
1 8 13 12 16 2 6
j i
1 8 13 12 16 2 6
j i
1 8 2 12 16 13 6
j i
1 8 2 6 16 13 12
---->此时i遍历结束,基数与li[j]互换,此时基数的索引为 j 或者 li.index(js)
j
1 8 2 6 11 13 12 16
快速排序原理
最新推荐文章于 2022-09-09 23:52:26 发布