【问题标题】:How does quicksort work for an array of all the same elements?快速排序如何处理所有相同元素的数组?
【发布时间】:2016-07-23 10:31:06
【问题描述】:

例如,一个大小为 7 的数组包含所有 3。 <3a, 3b, 3c, 3d, 3e, 3f, 3g>

这些字母是用来区分这3个中的“身份”是为了演示的目的,它们实际上并不是数据的一部分。

【问题讨论】:

  • 我知道这些字母是为了讨论和显示新序列而添加的,而不是真实的数据。
  • 我建议您详细说明“它是如何工作的”的意思。算法是一样的。

标签: sorting quicksort partitioning


【解决方案1】:

这取决于实现。

如果它在它们的序列中留下相同的元素,则称为stable,如果它们可能以另一个序列返回,则称为不稳定

当然,您不会看到差异 - 除非您将数据行与其他列中的其他数据进行排序,并且只有排序后的列是相同的。在那里它有所作为。

【讨论】:

    【解决方案2】:

    快速排序和几乎任何交换非相邻元素的排序都不稳定(您可能会很幸运并最终得到稳定的结果),这意味着不会保留相同元素的顺序。

    合并排序和大多数只交换相邻元素的排序是稳定的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多