《啊哈!算法》 关于快速排序法为什么一定要哨兵j 先出动的原因?
得出结论:
如果选取最左边的数arr[left]作为基准数,那么先从右边开始可保证i,j在相遇时,相遇数是小于基准数的,交换之后temp所在位置的左边都小于temp。但先从左边开始,相遇数是大于基准数的,无法满足temp左边的数都小于它。所以进行扫描,要从基准数的对面开始。(注:左右相对来说,也可前后)
代码验证:
现选取最左边的数arr[left]作...
原创
2018-09-05 16:18:22 ·
3960 阅读 ·
1 评论