假设我们有一个标准的双向分区QuickSort算法,它总是在第一个元素上转动。但是,在QuickSort的这个轻微变体中,我们首先交换第一个和中间元素,然后转向“新”和“#39;第一要素。我的问题是,这会改变最坏情况下的运行时间吗?
我最初的想法是否定的,因为在每个子数组中元素仍然是相对于彼此的随机顺序,因此切换第一个和中间元素不会改变整个运行时。但是,由于我有兴趣找到最糟糕的情况,我不确定是否有一些特殊的'导致这种轻微变体的数组可以改变原始算法的最坏情况运行时间。
答案 0 :(得分:1)
Quicksort最糟糕的情况是枢轴始终是最小值或最大值。考虑到这一点,您可以构建一个最坏情况的数组: