Java 如何计算给定代码的时间复杂度?
我在做一个项目。我设计了一个有很多步骤的算法。每个步骤都有for循环,for循环中的for循环。但是最大的一个是below代码,它在for循环中有许多for循环。我猜对于算法中的所有步骤,时间复杂度最高的步骤就是算法的复杂度。但我不知道如何计算算法的时间复杂度。你能告诉我如何计算时间复杂度吗。代码如下Java 如何计算给定代码的时间复杂度?,java,algorithm,Java,Algorithm,我在做一个项目。我设计了一个有很多步骤的算法。每个步骤都有for循环,for循环中的for循环。但是最大的一个是below代码,它在for循环中有许多for循环。我猜对于算法中的所有步骤,时间复杂度最高的步骤就是算法的复杂度。但我不知道如何计算算法的时间复杂度。你能告诉我如何计算时间复杂度吗。代码如下 for (z = 0; z <con1; z++) { outer: for (m = 0; m < con2; m++) { if () {
for (z = 0; z <con1; z++) {
outer:
for (m = 0; m < con2; m++) {
if () {
for (i = 0; i < con3; i++) {
if () {
for (k = 0; k < con4; k++) {
for (j = 0; j < con5; j++) {
if () {
for (l = 0; l < con6; l++) {
}
for (r = 0; r < con3; r++) {
if () {
}
}
for (n = 0; n < con6; n++) {
}
for (s = 0; s < con4; s++) {
if(){
}
}
break outer;
}
}
}
}
}
}
}
}
for(z=0;z基于可用的稀疏信息,最坏情况的复杂性可能是按照O(con1*con2*con3*con4*con5(2*con6+con3+con4))
给定这里的稀疏代码,您能告诉我们每个if
语句的真/假条件的概率吗?每个“if”在退出代码之前,至少有一次是真的。如果我把数字输入con1,con2..比如con1=10,con2=260,con3=53,con4=53,con5=260,con6=9,然后计算时间复杂度,答案是什么,会是纳秒吗?因为如果计算出来,它会变成一个非常大的数字。@user3552285似乎你不太了解时间点复杂性…它不应该给你一个硬性数字来告诉你算法运行需要多长时间。插入数字是没有意义的。确切地说,这是算法性能的上限。请查看@user3552285事实上,如果con
中的每一个都是常量,那么从技术上讲,你的算法将有O(1)复杂性(如果内存可用),因为运行时间的上限与输入无关