Тема: Оцінка складності алгоритмів
AAAA, завтра екзамен
Друзі, поможіть з алгоритмами)
Визначення складності. Теорію почитав: а ось з практикою не дуже)
псевдокоджу
1.
func f(int n):
int count := 0
for i := 0 to n:
for j:= 0 to i:
count++;
print (count)
Моя версія: O(n*n!)
2.
func f(int n):
int count := 0
for i := 0 to n:
for j:=i+1 to n:
for k:=i to j:
count++;
print (count)
Моя версія: O(n*n!*log(n))
2.
func f(int n):
int count := 0
int m := n
while n > 0:
for i := 0 to n:
count++;
n /= 2
print (count)
Моя версія: O(n*something_responsible_for_while_loop) Але тут не знаю. Думав так: внутрішній цикл: зрозуміло n. Складності вкладених циклів перемножаються, тому це n треба помножити на щось що відповідає за while цикл.
while цикл:
n=5, виконається (n=5) (n=2) (n=1) 3 рази
n=10, виконається (n=10) (n=5) (n=2) (n=1) 4 рази
n=20, виконається (n=10) (n=10) (n=5) (n=2) (n=1) 5 рази
So, help me please?