【发布时间】:2015-11-13 07:21:06
【问题描述】:
f(n)=5/n;
f(n) 的 BigOh 是多少?
【问题讨论】:
标签: big-o complexity-theory asymptotic-complexity
f(n)=5/n;
f(n) 的 BigOh 是多少?
【问题讨论】:
标签: big-o complexity-theory asymptotic-complexity
复杂度不随 n 增长,因此 O(1)
【讨论】:
计算f(n)的时间复杂度是O(1),空间复杂度要么是O(1)要么为零(取决于你是否将临时寄存器算作空间)1。
如果(假设)f(n) 是计算的成本函数2,则其复杂度等级将为 O(1/n)。但是,这没有任何意义3。当 N 趋于无穷时,你怎么可能有一个趋于零的成本函数?成本要么为零(对于空计算,要么没有空间),或者至少为1。成本按某些不可分割单位的倍数计量;例如位或字节或指令或时钟周期。
1 - 实际上,这是一种过度简化。将5/n 精确 表示为浮点数(在给定的基数中)所需的空间是无限的。因此,精确计算那些n 值的数字表示的时间也是无限的。然而,这不是我们通常编写程序的方式。以十进制计算(例如)5 / 3 的精确值基本上是毫无意义的练习。
2 - 例如,执行计算所花费的时间、计算所占用的空间...或执行计算的其他一些成本。
3 - 根据 Big Oh 符号的定义,它在数学上确实有意义。
【讨论】: