快速排序一趟后结果

题目:原序列:(20,18,22,16,30,19) 以20为基准,写出一趟排序后结果

话不多说,直接上图!
快速排序一趟后结果_第1张图片
方法:
1.找出比基准小的部分和大的部分,分成两部分,并确定基准的位置。
比20小: 18 16 19
比20大: 22 30
所以20应是第四位

2.将基准放到对应位置(先不替换原来数字,只占位),该位置左边元素中,比基准小的位置不变,同理,该位置右边元素中,比基准大的位置不变。
即(空,18,空,20,30,空)

3.其余倒序,从左到右排序,比基准小的在基准左边,比基准大的在基准右边。
(倒序的说法只是为了方便理解,并不严密。
其原理是哨兵i是从左往右的,哨兵j是从右往左的,所以
比基准小的数原数组需要从右往左遍历,并按照从左往右的顺序存放;
比基准大的数原数组需要从左往右遍历,并按照从右向左的顺序存放。

所以,结果为(19,18,16,20,30,22)
具体过程见图。


小小的学习记录,言语不严密,仅作参考,欢迎指正!

你可能感兴趣的:(快速排序,数据结构,排序算法)