for(int i = 1; i < n; i = i ∗ 2){
for(int j = 0; j < n; j++){
if(i == j){
for(int k = 0; k < n; k++){
// Do something elementary
}
}else{
// Do another elementary thing
}
}
}
Я занимаюсь некоторыми упражнениями, и может кто-то помочь мне разобраться в Θ вышеуказанного алгоритма? Я понимаю, что если бы это были только два внешних вложенных цикла, временная сложность должна быть Θ (nlogn). Но я не знаю, как обращаться с утверждением if-else. Спасибо заранее!Временная сложность вложенных петель
Подсказка 1: сколько раз 'i == j' в этом цикле? Подсказка 2: можете ли вы снять самую внутреннюю петлю из средней, чтобы программа стала легче анализировать? –
Спасибо. Я думал о том, сколько раз я == j, но нет вывода. – stillAFanOfTheSimpsons
@matheburg Обычно считается, что сравнение и ветвление принимают O (1) раз. –