选择一个随机元素或中间元素可以最大限度地减少出现最坏情况的可能性。但给定一个随机输入数组,我们选择的随机或中间元素仍然有可能导致最坏的情况。有没有办法,我们可以根据提供的输入来决定使用哪个枢轴元素?而不是考虑最坏情况的最小可能性
pivot元素的选择主要有三种方式:
- 中间元素
- 随机元素
- 最后一个元素
以上三个保证了在O(1)
时间内选择随机元素。需要确保选择枢轴元素的算法是O(1)
,否则快速排序的总体时间复杂度将变为O(n^2)
。