Quicksort推动选择

时间:2011-06-27 17:13:49

标签: quicksort

我已经读过,枢轴可以是3个数字的中位数,底部,中间和顶部。但是,这会产生溢出吗?如果中位数返回的值大于数组大小,会发生什么? 我假设这个选择是假设它们的数组值不能超过数组大小。 我觉得我对什么是枢纽感到困惑。

1 个答案:

答案 0 :(得分:3)

数据透视表是您比较其他值的值 - 较低的值向左,向右移动。可以通过获取数组中的任何现有值来选择数据透视表。如果数组完全未排序,则选择哪个值无关紧要。如果它有些排序,你应该从数组的中间选择一个值。

更新:一些阅读告诉我,更好的枢轴选择可能是选择阵列中3个值的中值(例如中间,底部和顶部或3个随机位置)。有些人主张采用5个值的中位数。当枢轴接近阵列中的最小值或最大值时,会出现最坏情况的快速排序,这种策略旨在防止出现这种情况。这只是对某些类型数据的优化 - 它不是必需的。