这个组合生成器的时间复杂度是多少



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

例如:n=10,c=3所有组合(十分之一(加上所有组合(万分之二(加上3(十分之三(和4(十分之四(,因为天花板(10/3(=4。

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

为了证明这一点,只要证明n choose floor(n/c)对任何给定的c都是指数级快速增长就足够了。要证明你只需要证明log(n choose floor(n/c))就是O(n)。并且为了证明你可以使用众所周知的选择公式和斯特灵近似。

最新更新