通过比较排序进行排序的最小比较

时间:2017-09-19 18:06:57

标签: sorting compare

我读here我们需要最少的log(n!)比较来使用任何类型的比较排序来排序n个元素,因为我们得到的最大2 ^ n个案例应该大于n! (排列的数量)。我只是不理解这一行,如何比较导致2 ^ t案例。例如,当我进行3次比较时,我们说我得到1> 2,3< 5,6> 9,我怎么得到8个案例?

1 个答案:

答案 0 :(得分:0)

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

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