编辑:到目前为止,我已经在 SO 上阅读了大约 3 个小时,但对我来说仍然没有多大意义(这意味着我在询问之前已经完成了研究)。忘记在OQ中说明了。
好吧,我对 BigO 完全不知所措,当我尝试将其他方法应用于我的代码时,这对我来说几乎没有意义。如果有人可以提供帮助,我想要一个如何计算以下 BigO 的演练。
int i = 0;
int t = 0;
while(i <= 4){
// Basic instructions
int s = 0;
while(s <= 4){
// Basic instructions
t + 2;
if(conditions){ // Checks if a value isn't in a hashset
for(int r = 0; r <= t; r++){
// Basic instructions
if(conditions){ // This statement can make t equal to any number < t, checks if two strings are identical.
// Do stuff
}else{
// Do stuff.
}
}
}else if(condition){
i++;
}
s++;
}
}
如果需要,我可以将完整的代码放在那里,但据我所知,我认为这应该足以帮助我。
到目前为止,我的想法是(不包括 if 语句)符号类似于 O(n^3) 但因为它们是嵌套的(以及其他人告诉我的东西),它有点让我失望。
请注意:这不是直接针对作业,但我们的任务是讨论我们为作业编写的代码及其复杂性。我们被告知要展示我们理解复杂性/正确性(一般来说,不是 BigO)以及它是如何应用的,但不要将它应用到我们的代码中,因为这样做太复杂了。我只是在考虑这样做,因为我想为将来更好地理解它。上面的代码也是一个随机示例,而不是我的实际代码,这意味着我仍然必须更改它以适应任何情况。
在此先感谢,我们在课堂上只看了大约 30 分钟的 BigO,经过大量阅读后,我觉得我自己太糊涂了。正如我所说,如果该代码不合适,我可以更改它。