【问题标题】:Minimum comparisons for sorting by comparison sort通过比较排序进行排序的最小比较
【发布时间】:2017-09-19 18:06:56
【问题描述】:

我读到here,我们需要最少的 log(n!) 比较来使用任何类型的比较排序对 n 个元素进行排序,因为我们得到最多 2^n 个应该大于 n 的情况! (排列的数量)。我只是不明白这条线,怎么不能比较导致 2^t 案例。例如,当我进行 3 次比较时,假设我得到 1 > 2、39,我如何得到 8 个案例?

【问题讨论】:

标签: sorting compare


【解决方案1】:

t 比较如何导致 2^t 案例?

如果您将其视为决策树,如我在评论中提供的链接所示,它会变得更加清晰。

一次比较提供两种情况:

    (a < b)
true       false

有了三个项目,你最终得到:

                      (a < b)
          (a < c)                 (a < c)
    (b < c)     (b < c)     (b < c)     (b < c)
   1       2   3       4   5       6   7       8

如您所见,每次比较都会产生两个分支。有八种可能的路径穿过树。每个叶节点代表一个结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2014-04-26
    • 2014-11-25
    • 2018-12-12
    • 2013-08-21
    相关资源
    最近更新 更多