мне нужна помощь в поиске временной сложности этой функции в большой нотации O:как вычислить временную сложность в большой нотации O этого алгоритма
int myfunction(bool exists)
{
int var=0; int k,j,n;
if (exists)
for(k=1; k<=n; k*=2)
for(j=1; j<=k; j++)
var++;
else
for(k=1; k<=n; k*=2)
for(j=1; j<=n; j++)
var++;
return var;
}
от того, что я понял из книги, в тех случаях, как это, когда мы имеют блоки if-else, общая сложность алгоритма - худший случай обоих блоков, поэтому я вычислил сложность блока else, которая имеет сложность O (log2 (n)), исправьте меня, если я ошибаюсь , но у меня возникли проблемы с поиском временной сложности блока if, кажется, что это занимает меньше времени, но я не могу определить, сколько.
2-й блок имеет сложность O (NlogN). Анализ можно найти в [ответе на этот вопрос] (http://stackoverflow.com/questions/21503128/time-complexity-for-this-algorithm-with-two-for-loops/21503447#21503447) – waTeim