Итак, у меня есть psuedocode, который я должен проанализировать для класса. Я пытаюсь выяснить лучший случай и худший случай с точки зрения тэта. Я выяснил лучший случай, но у меня проблемы с худшим случаем. Я думаю, что худший случай на самом деле такой же, как в лучшем случае, но я предпочел себе второй вопрос и хотел бы получить некоторые отзывы о том, как правильно разработать повторение для наихудшего случая, если на самом деле они не совпадают.Лучший случай/худшие случаи повторения отношений
Код:
function max-element(A)
if n = 1
return A[1]
val = max-element(A[2...n]
if A[1] > val
return A[1]
else
return val
Лучший случай Рецидив:
T(1) = 1
T(n) = T(n-1) + 1
T(n-1) = T(n-2) + 1
T(n) = T((n-2) + 1) + 1
T(n) = T(n-1) + 1 -> T(n) = T(n-k) + k
Let k = n-1
T(n) = T(n-(n-1)) + n - 1
T(n) = T(1) + n -1
T(n) = 1 + n - 1
T(n) = n
Лучший и худший случай для вашего кода. Оба находятся в 'Θ (n)' так же, как вы рассчитали. – AbcAeffchen