Java 变量初始化/赋值语句是单个操作还是多个操作?
我只是在学习算法的性能分析 我的问题是:int i=0;被计算为两个操作:辅助、初始化。或者它只是一个紧凑的操作?Java 变量初始化/赋值语句是单个操作还是多个操作?,java,c++11,Java,C++11,我只是在学习算法的性能分析 我的问题是:int i=0;被计算为两个操作:辅助、初始化。或者它只是一个紧凑的操作? 我使用的是渐近分析,它使用运算次数作为一个例子来描述性能没有一个正确的答案 在某些情况下,人们可能将单个算术运算分析为一个运算。其他时候,他们可能非常关心一个操作将需要多少个周期,并且他们可能想说,例如,添加整数比乘浮点数便宜 在许多情况下,程序员说取消对指针的引用是O1。然而,如果你真的在考虑n趋于无穷大的情况,如果你的n就像宇宙的大小,那么说将指针解引用到其中就是O1操作,还有
我使用的是渐近分析,它使用运算次数作为一个例子来描述性能没有一个正确的答案 在某些情况下,人们可能将单个算术运算分析为一个运算。其他时候,他们可能非常关心一个操作将需要多少个周期,并且他们可能想说,例如,添加整数比乘浮点数便宜 在许多情况下,程序员说取消对指针的引用是O1。然而,如果你真的在考虑n趋于无穷大的情况,如果你的n就像宇宙的大小,那么说将指针解引用到其中就是O1操作,还有意义吗,人们会说,从本质上来说,取消对指针的引用是错误的 然而,我曾经和一位物理学家谈过,他说即使是Olog n也可能不是物理上真实的——他说在给定的体积空间中,宇宙可以有一个最大的信息密度。这被称为,最大熵是由黑洞实现的。如果你假设在一个体积为n的空间中,你只能有一个位的内存,这基本上意味着在一个银河系大小的计算机中,位必须像球一样被压缩,然后一对典型的位之间的距离在^{1/3}上增长。因为信息的传播速度不会超过光速。。。也许取消对指针的引用需要在^{1/3}上渐近进行?O.O 关键是,不要想得太多。在渐近分析中,你所做的任何事情最终都是一个近似值,你只是想得到一个有用的关于它需要多长时间的概念。在你的案例中,你非常确定的事情实际上并不重要,你可以作为O1进行分析,以便专注于真正重要的事情。在另一种情况下,如果这些东西代表了大部分工作,那么您可能需要以不同的方式分析它们
在我看来,如果你想知道如何在面试中回答关于这方面的问题,你应该准备好用多种不同的方式进行分析,并向他们表明你理解int i=0;算作一个操作或两个基本上是一个约定。< /P>这是在java或C++环境下的吗?请澄清。这只是计算运算的一种方式,该语句在两种语言中是通用的。我想!java java程序员java,不知道C++,引用@ kReMeMad——这个实例在一个类成员中的实例成员变量“i”可能是C++和Java中不同的东西。在C++中,将用提供的值初始化,但在java中,默认值初始化,然后赋值指定赋值。