【问题标题】:Order of growth rate in increasing order增长率按递增顺序排列
【发布时间】:2016-07-17 06:36:38
【问题描述】:

按增长率升序排列以下函数 (当且仅当 f(n)=O(g(n)) 时,列表中的 g(n) 跟在 f(n) 之后)。

a)2^log(n)  
b)2^2log(n)  
c)n^5/2  
d)2^n^2  
e)n^2 log(n) 

所以我认为答案是递增的 CEDAB
这是正确的吗?我对选项 A 和 B 感到困惑。 我认为选项A应该放在第一位。我的意思是少一个,所以请帮助解决这个问题。 我在算法课程第 1 部分作业 (Coursera) 中遇到的这个问题。

【问题讨论】:

标签: algorithm computer-science


【解决方案1】:

首先,n 的任何正幂总是大于log n,所以 E 在之前 C,而不是之后。

此外,D 出现在所有其他函数之后,因为 2^n^2 的任何一种解释(可能是 2^(n^2) 或 (2^n)^2 = 2^(2n);尽管我忽略 BIDMAS 可能是错误的......)是 n 本身的指数。

以log 为基础a,一些任意常量:

a)

b)

因此,不幸的是,实际顺序取决于a 的值,例如如果

的值

大于 2,则 A 在 E 之后,否则在之前。奇怪的是,E 中对数项的底是无关紧要的(它仍然保持其位置)。

【讨论】:

    【解决方案2】:

    答案是aecbd

    了解原因的最简单方法是创建一个具有不同 n 值的表并在它们之间进行比较。但有些直觉:

    a 的增长比其他任何人都少,特别是 c,因为幂中的对数项而不是项本​​身

    e 是 a 乘以 n**2 项,这比它在指数中要好

    b 是双指数,但仍优于二次幂

    d 显然是最糟糕的,因为它以二次幂呈指数增长!

    【讨论】:

      猜你喜欢
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      相关资源
      最近更新 更多