使用8次比较进行二进制搜索的最大排序列表

时间:2014-02-21 05:29:20

标签: binary-search-tree

如何根据知道它是一个合并排序搜索来弄清楚如何确定列表的长度?

1 个答案:

答案 0 :(得分:2)

不是数学证明,而是简单的推理;

  • 通过 1 比较,您可以比较 1 项目。不难看出。

  • 使用 2 比较,您可以使用第一个将项目拆分为一半,第二个用于比较任意一半的项目。这使得1 + 1 + 1 = 3 项目具有可比性。

  • 通过 3 与相同推理的比较,您可以获得3 + 1 + 3 = 7 项目。

概括而言,如果您可以将 x 项目与 n 比较进行比较,则可以将 x + 1 + x 项目与进行比较n + 1 比较。这使得该系列;

1, 3, 7, 15, 31, 63, 127, 255, 511...

换句话说,您可以将255个项目与8个比较进行比较。

255 = 2**8-1