Чтобы быть честным, если вы чувствуете, как показывая ребят учить, конечно, что их постановка проблемы, вероятно, является не то, что они хотели, я бы просто сделать это таким образом:
for(int i = 0; i < c; i++) { /*your code here*/}
Это в O (c), а так как O (c) является строгим подмножеством O (c k) для k> 1, оно также находится в O (c k). Вероятно, это не то, что люди обучают вашему курсу, вероятно, вы хотите написать цикл, который работает в Θ (c k).
На другой ноте:
с к и 3 п не то же самое. Предполагая, что длина вашего ввода равна n, c k - это постоянное время, в то время как 3 n - экспоненциальное время. Предполагая, что длина вашего ввода c, c k является полиномиальным, а 3 n является постоянным. Предполагая, что длина вашего ввода равна k, c k является экспоненциальным, а 3 n является постоянным.
Короткий ответ, нет. Вычисление '3^n' не принимает' O (3^n) '. –
не обижайтесь, но вместо того, чтобы публиковать домашнее задание один за другим, прочитайте и попробуйте сами ... вы отправили почти одинаковые 3 вопроса подряд – stinepike
'for (int i = 0; i
mah