Algorithm 什么';好的支点和“好的支点”的区别是什么;“坏轴”;在选择算法?

Algorithm 什么';好的支点和“好的支点”的区别是什么;“坏轴”;在选择算法?,algorithm,runtime,selection,big-o,Algorithm,Runtime,Selection,Big O,我试图理解这个问题,我遇到了一个好的轴心和一个坏的轴心。我可以看到,该算法使用分区算法来分离右侧较大的元素 轴,以及轴左侧的较小元素 但是,这意味着什么呢 bad pivot如何将总运行时间放入O(n^2) 谢谢如果选择算法在每一步都能丢弃大量的数组,那么它的速度会更快。对于“很多”的某些定义来说,一个好的枢轴会导致算法丢弃“很多”数组元素。坏轴是算法丢弃数组标题的轴 在最坏的情况下,枢轴可能是数组中最大或最小的元素。如果发生这种情况,那么算法将以一组值为空的方式对元素进行分区,因为没有元素

我试图理解这个问题,我遇到了一个好的轴心和一个坏的轴心。我可以看到,该算法使用
分区
算法来分离右侧较大的元素 轴,以及轴左侧的较小元素

  • 但是,这意味着什么呢
  • bad pivot
    如何将总运行时间放入
    O(n^2)

谢谢

如果选择算法在每一步都能丢弃大量的数组,那么它的速度会更快。对于“很多”的某些定义来说,一个好的枢轴会导致算法丢弃“很多”数组元素。坏轴是算法丢弃数组标题的轴

在最坏的情况下,枢轴可能是数组中最大或最小的元素。如果发生这种情况,那么算法将以一组值为空的方式对元素进行分区,因为没有元素小于轴或元素大于轴。这个分区步骤需要时间O(n),并且必须运行O(n)次,因为每次迭代都会将数组的大小减少1。这会将算法运行时降级为O(n2)。有趣的是,这也是使快速排序退化为时间O(n2)的方法

希望这有帮助