如何获得大O(最坏情况)的递归nCr

时间:2018-01-16 15:36:04

标签: algorithm

如何获得大O(最坏情况)递归nCr
公式:
1. nCr =(n-1)C(r-1)+(n-1)Cr
2. nCn = 1且nC0 = 1 例如,在mergesort的情况下,我们知道 T(N)= 2T(N / 2)+ CN
从这个等式我们可以得出结论,算法的复杂性是nlogn

从上面的公式可以告诉我问题的复杂性

1 个答案:

答案 0 :(得分:-1)

您可以按照提到的那样采用复杂性路线。但是我发现下面的方法很容易理解。

nCr  = n!/((n−r)!k!) 
     = (1/r!) * (n(n−1)(n−2)…(n−r+1))
     = (1/r!) * n^r⋅(1(1−1/n)(1−2/n)…(1−r/n))
  

现在(1(1-1 / n)(1-2 / n)...(1-r / n)) - > 1为n->给定r的无穷大

     

对于给定的r

,(1 / r!)也是O(1)

This gives O(nCr) = O(n^r)