我需要帮助准确理解快速排序算法是如何工作的。我一直在看教学录像,但仍然没有完全理解它。
我有一个未排序的列表: 1、2、9、5、6、4、7、8、3,我必须使用6作为枢轴快速排序。我需要在每个分区过程之后查看列表的状态。
我的主要问题是理解元素在枢轴前后的顺序。所以在这个例子中,如果我们把6作为枢轴,我知道数字1-5会在6之前,而7-9会在那之后。但是,给出上面的列表,在第一个分区中,数字1-5和7-9的顺序是什么?
下面是我想要使用的分区算法(bear使用中间元素作为我的初始枢轴):
假设索引smallIndex指向小于枢轴的最后一个元素。索引smallIndex被初始化为列表的第一个元素。
smallIndex b.用smallIndex指向的数组元素交换当前元素。smallIndex指向的数组元素交换第一个元素,即支点。如果有人能够在算法中的列表发生每一个小变化后显示列表,那将是令人惊奇的。
发布于 2015-03-03 12:16:26
无所谓。
重要的是--分区过程所断言的--在运行它之后,在中心点的左边没有比枢轴更大的值,并且右边没有小于枢轴值的值。
然后,在随后的每一半递归调用中处理两个分区的内部顺序。
https://stackoverflow.com/questions/28831243
复制相似问题