我是java开发和时间复杂性的新手,我正在尝试计算这段代码的总体时间复杂度
void merge (char s[], char t[], char result[]){
int i, j, k; //line 1
for (i = j = k = 0; (s[i] != ’\0’) && t[j] != ’\0’); k++){ //line2 // line 3
if (s[i] <= t[j]) // line 4
result[k] = s[i++]; // line 5
else // line 6
result[k] = t[j++]; // line 7
} // line 8
for (; s[i] != ’\0’; i++ ) { // line 9
result[k] = s[i]; // line 11
} // line 12
for (; t[j] != ’\0’; j++ ){ //line 13
result[k] = t[j]; // line 15
} // line 16
result[k] = 0; // line 17
}
答案 0 :(得分:1)
我认为我说的是正确的,因为没有嵌套循环且没有提前终止标准,所以上面的算法是O(n)