我想知道这个的大 O 符号是什么。我知道 for 循环是 O(n)。我不确定 if 语句是否为 O(n log n)。如果是这样,那不会使运行时间复杂度 (n)*((n log n)^3)。还是 ((n^2)(log^3n)) ?另外我知道数组中的存储是 O(n) 并且想知道调用同一数组中的元素是 O(n) 还是具有不同的运行时间复杂性。(用Java eclipse编写)
for (i=0;i<numberOfProblems;i++){
String string1= ap.nextString("P or NP?");
if(string1=P){
pOrNPValue[i]=0;
}else{
pOrNPValue[i]=1;
String string2 = ap.nextString("Best Case Run Time?");
if(string2==ok){
bestCaseValue[i]=0;
}else if(string2=oLogLogN){
bestCaseValue[i]=1;
} else if(string2=oLogN){
bestCaseValue[i]=2;
}else if(string2=oNC){
bestCaseValue[i]=3;
}else if(string2=oN){
bestCaseValue[i]=4;
}else if(string2=oNLogStarN){
bestCaseValue[i]=5;
}else if(string2=oNLogN){
bestCaseValue[i]=6;
}else if(string2=oNK){
bestCaseValue[i]=7;
}else if(string2=oCN){
bestCaseValue[i]=8;
}else if(string2=oNFactorial){
bestCaseValue[i]=9;
}
String string3 = ap.nextString("Average Case Run Time?");
if(string3=ok){
averageCaseValue[i]=0;
}else if(string3=oLogLogN){
averageCaseValue[i]=1;
} else if(string3=oLogN){
averageCaseValue[i]=2;
}else if(string3=oNC){
averageCaseValue[i]=3;
}else if(string3=oN){
averageCaseValue[i]=4;
}else if(string3=oNLogStarN){
averageCaseValue[i]=5;
}else if(string3=oLogLogN){
averageCaseValue[i]=6;
}else if(string3=oNK){
averageCaseValue[i]=7;
}else if(string3=oCN){
averageCaseValue[i]=8;
}else if(string3=oNFactorial){
averageCaseValue[i]=9;
}
String string4 = ap.nextString("Worst Case Run Time?");
if(string4=ok){
worstCaseValue[i]=0;
}else if(string4=oLogLogN){
worstCaseValue[i]=1;
} else if(string4=oLogN){
worstCaseValue[i]=2;
}else if(string4=oNC){
worstCaseValue[i]=3;
}else if(string4=oN){
worstCaseValue[i]=4;
}else if(string3=oNLogStarN){
worstCaseValue[i]=5;
}else if(string4=oLogLogN){
worstCaseValue[i]=6;
}else if(string4=oNK){
worstCaseValue[i]=7;
}else if(string4=oCN){
worstCaseValue[i]=8;
}else if(string4=oNFactorial){
worstCaseValue[i]=9;