n log n is O(n)?

前端 未结 3 1619
慢半拍i
慢半拍i 2020-12-04 11:33

I am trying to solve this recurrence

T(n) = 3 T(n/2) + n lg n ..

I have come to the solution that it belongs to masters theorem case 2 since n lg n is O(n^2

相关标签:
3条回答
  • 2020-12-04 12:02

    This will explain things better enter image description here

    0 讨论(0)
  • 2020-12-04 12:05

    n*log(n) is not O(n^2). It's known as quasi-linear and it grows much slower than O(n^2). In fact n*log(n) is less than polynomial.

    In other words:

    O(n*log(n)) < O(n^k)
    

    where k > 1

    In your example:

    3*T(2n) -> O(n^1.585)
    

    Since O(n^1.585) is polynomial and dominates O(n*log(n)), the latter term drops off so the final complexity is just O(n^1.585).

    0 讨论(0)
  • 2020-12-04 12:14

    nlg3 is not O(n). It outgrows O(n)... In fact, any exponent on n that is larger than 1 results in an asymptotically longer time than O(n). Since lg(3) is about 1.58, as long as you subtract less than .58 from the exponent it is asymptotically greater than O(n).

    0 讨论(0)
提交回复
热议问题