2017-01-31 6 views
1

Я знаю, что:Время Сложность мульти цикла

for(i;i<n;i++){ 
    for(j;j<n;j++){ 
     //code 
    } 
} 

О (п^2)

но что-то вроде:

do{ 
    printf("Insert i:"); 
    scanf("%d",&i); 
    do{ 
     printf("Insert n:"); 
     scanf("%d",&n); 
    }while(n<0); 
    do{ 
     printf("Insert z:"); 
     scanf("%d",&z); 
    }while(z<0); 
}while(i<0); 

Пока пользователь не введет правильное значение, то внутренние циклы продолжают повторяться. Это может быть O (n^3)?

+0

Что такое код внутри 'while (// code)'? – sameerkn

+4

Если петли полностью зависят от ввода пользователя, то я не уверен, что имеет смысл говорить о временной сложности ... Нет никакого «n», чтобы зависеть от ... – Chris

+0

@sameerkn Я отредактировал код, чтобы быть более clear – Jilz

ответ

0

Если я правильно понял вопрос, можно было бы дать следующую оценку. Пусть m будет минимальным количеством всех введенных чисел. Если

m < 0 

Удерживается, алгоритм не заканчивается, поскольку одна из петель должна работать в режиме forver. Если

m >= 0 

держит, алгоритм имеет сложность выполнения

O(1) 

как каждый цикл занимает только одну итерацию.

 Смежные вопросы

  • Нет связанных вопросов^_^