【问题标题】:What is the time complexity of this combination generator这个组合生成器的时间复杂度是多少
【发布时间】:2021-01-22 07:12:06
【问题描述】:

我想从一组 n 个数字中生成 k 个数字的所有组合,只要 k 小于或等于 Ceiling(n / c),其中 c 是一个常数。这种算法在大 O 表示法中的时间复杂度是多少?复杂度会是指数、多项式、伪多项式还是其他?

例如: n = 10,c = 3 10 中的 1 加上 10 中的 2 加上 10 中的 3 和 10 中的 4 的所有组合,因为 Ceiling(10/3) = 4。

【问题讨论】:

    标签: algorithm time-complexity big-o complexity-theory


    【解决方案1】:

    要返回的东西是指数级的,因此它必须是指数级的。

    为了证明这一点,只要证明n choose floor(n/c) 对任何给定的c 呈指数级增长就足够了。要证明你只需要证明log(n choose floor(n/c))O(n)。并证明您可以使用众所周知的公式来选择和Stirling's approximation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2020-12-03
      • 2015-06-17
      • 2017-09-11
      • 2015-06-12
      • 2021-02-25
      相关资源
      最近更新 更多