这句话里有多少个基本操作?[不公开]

问题描述 投票:0回答:1
S = (S / (N * N)) * 100.0

原始运算。伪代码中的算法所进行的基本计算。

对于上面的代码,我得到了6个操作的计数。我在下面进行了详细的说明。

  • 对 "S "的写入的1次操作
  • 1次读取 "S "的操作
  • 对""进行1次操作。
  • 读取第一个 "N "的1次操作。
  • 对第一个 "*"进行1次操作
  • 对第二个 "N "进行0次操作,因为计算机已经读取了第一个 "N"(不知道这是否正确)。
  • 最后一个 "*"的操作为1次

我不知道我的计算是否正确。I would apprechite if someone could double check this. 谢谢你。

java algorithm primitive
1个回答
1
投票

这要看你说的基元运算是什么意思。

你说:

"因为计算机已经读取了第一个 "N""

这可能是真的,也可能不是。 这取决于Java编译器的作用。 (字节码编译器和JIT编译器)。 一个Java编译器是 允许 来优化这个或不优化它。

但问题是:如果你是为了进行 "第一原理 "复杂度分析而计算基元操作,那么不管你把这个语句算作5个还是6个基元操作......甚至是1个基元操作都没有关系。 所有这些都会给出相同的答案:这个语句是 O(1).

© www.soinside.com 2019 - 2024. All rights reserved.