Performance 以下代码在大O表示法中的时间复杂度是多少?

Performance 以下代码在大O表示法中的时间复杂度是多少?,performance,algorithm,big-o,time-complexity,Performance,Algorithm,Big O,Time Complexity,T(n)=8*T(n/2)+n*n T(n)=3*T(n/4)+n 我想用大O表示法计算时间复杂度。答案是什么(不使用主定理)主定理适用于T(n)=a*T(n/b)+n^c形式的任何递归。它查看并比较了重复周期的两个部分: 1) 此级别的恒定功的大小(c) 2) 递归调用的数量和大小(a和b) 从这里,我们将log_b(a)与c进行比较。有三种可能性 log\u b(a)>c->T(n)isO(n^log\u b(a)) log\u b(a)T(n)是O(n^c) log_b(a)=c->T(n

T(n)=8*T(n/2)+n*n

  • T(n)=3*T(n/4)+n


  • 我想用大O表示法计算时间复杂度。答案是什么(不使用主定理)

    主定理适用于
    T(n)=a*T(n/b)+n^c形式的任何递归。它查看并比较了重复周期的两个部分:

    1) 此级别的恒定功的大小(c) 2) 递归调用的数量和大小(a和b)

    从这里,我们将log_b(a)与c进行比较。有三种可能性

  • log\u b(a)>c
    ->
    T(n)
    is
    O(n^log\u b(a))
  • log\u b(a)
    ->
    T(n)
    O(n^c)
  • log_b(a)=c
    ->
    T(n)
    O(n^c log(n))
  • 所以对于你的两个例子

  • T(n)=8*T(n/2)+n*n
    ,因此
    a=8,b=2,c=2
    logu2(8)>2
    ,因此
    T(n)
    O(logu2(8))
    =
    O(n^3)
  • T(n)=3*T(n/4)+n
    ,因此
    a=3,b=4,c=1
    log_4(3)<1
    ,因此
    T(n)
    O(n^c)
    =
    O(n)

  • 对于第一个关系,您可以执行以下操作:


    答案是应用主定理。你能解释一下主定理是如何工作的吗?有人知道为什么我在添加这个问题时投了4张反对票吗?因为你不必在谷歌上搜索“主定理”,而只是希望其他人为你做工作。StackOverflow旨在帮助人们回答他们自己无法轻松回答的问题。通过在Wiki上查看master定理,我无法理解它。