[英]Why is it assumpted that the time-complexity of multiplication by n is constant?
不管如何实现乘法(或除法)运算(即,它是软件功能还是硬件指令),都无法在时间O(1)
求解。 对于大的n
值,处理器甚至无法通过一条指令进行计算。
在这样的算法中,为什么这些操作是恒定的而不依赖于n
?
for (i = 1; i <= n; i++) {
j = n;
while (j > 1)
j = j / 3; //constant operation
}
时间复杂度不能衡量时间。 它是可以定义所需“基本操作”的一种度量。 通常,任何算术运算都被视为基本运算。 有时(例如,当考虑排序算法或哈希表操作的时间复杂性时),基本操作是比较。 有时,“基本运算”是对单个位的运算(在这种情况下, j=j/3
将具有时间复杂度O(log(j)))。
倾向于遵循的规则是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.