у меня есть вопрос к времени работы следующие программы: Проблема 1:Продолжительность программ
a = 0
for i = 1 to n:
if i is odd:
for j = 1 to i:
a = a + j
Задача 2:
k = n
while k >= 1:
k = k/2
Что время работы этих двух задач с использованием большого О и большая Тета?
Для первого вопроса первая строка - O (1), внешняя петля - O (n). Я немного смущен внутренним циклом for, поскольку он связан с j. Я думаю, что когда n - большое нечетное число, тогда это будет O (n^2) из-за вложенного цикла.
Для второго вопроса, я думаю, что для k будет меньше n/2 раз, чтобы быть меньше 1., но не уверен, что это O (n) или большая тета n.
Как вы думаете, и почему? Где у вас проблемы с анализом? * Что вы сделали до сих пор? * –
@ Джон Коулман Не совсем. Я просто хочу убедиться, что мой ответ правильный или нет. Для первой проблемы внешний цикл равен O (n), а внутренний цикл связан с j, но не n. Я думал, что это будет O (n^2), но не уверен. Для второй проблемы мой ответ - большая тета n, так как для повторения цикла потребуется n/2 раза. – Patrick123
Вы всегда можете включить свои мысли в целенаправленный вопрос, который включает в себя фактический код, а не ссылку на образ кода и просить ответа без каких-либо доказательств работы с вашей стороны. Переполнение стека не является оракулом. –