第一趟:pivot=10,小于pivot的数为4、3、6、1、9、8,大于pivot的数为18、18、12。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(4,3,6,1,9,8,10,18,12,18)。

第二趟:左边序列(4,3,6,1,9,8)的pivot为4,小于pivot的数为3、1,大于pivot的数为6、9、8。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(3,1,4,6,9,8)。

右边序列(18,12,18)的pivot为18,小于pivot的数为12,大于pivot的数为18。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(12,18,18)。

第三趟:左边序列(3,1)的pivot为3,小于pivot的数为1,大于pivot的数为3。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(1,3)。

右边序列(6,9,8)的pivot为6,小于pivot的数为5、8,大于pivot的数为9。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(5,8,6,9)。

右边序列(12,18,18)的pivot为12,小于pivot的数为无,大于pivot的数为18、18。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(18,18,12)。

第四趟:左边序列(1,3)已经有序,不需要排序。

右边序列(5,8,6,9)的pivot为5,小于pivot的数为无,大于pivot的数为8、6、9。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(8,6,9,5)。

右边序列(18,18,12)的pivot为18,小于pivot的数为12,大于pivot的数为18。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(12,18,18)。

第五趟:左边序列(1,3)已经有序,不需要排序。

右边序列(8,6,9,5)的pivot为8,小于pivot的数为6、5,大于pivot的数为9。将小于pivot的数放到左边,大于pivot的数放到右边,得到序列(6,5,8,9)。

右边序列(12,18,18)已经有序,不需要排序。

最终结果为序列(1,3,4,6,5,8,9,10,12,18,18)。

快速排序算法示例:已知序列 (10, 18, 4, 3, 6, 12, 1, 9, 18, 8) 每趟排序结果

原文地址: https://www.cveoy.top/t/topic/oU96 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录