У меня есть функция для вычисления длины самой продолжительной последовательности. Здесь arr [] - массив длины n. И lisarr имеет длину n для хранения длины элемента i.Вычисление сложности функции
Мне трудно вычислить выражение повторения, которое является вводом для основной теоремы.
int findLIS(int n){
if(n==0)
return 1 ;
int res;
for(int i=0;i<n;i++){
res=findLIS(i);
if(arr[n]>arr[i] && res+1>lisarr[n])
lisarr[n]=res+1;
}
return lisarr[n];
}
Просьба указать способ повторения. Должно ли это T(n)=O(n)+T(1)
?
как T (n) = n-1 + T (n-1) + T (n-2) + .. + T (1) + T (0) = >> 2^n ?? –
@YS - Произошла ошибка, см. Отредактированный ответ. Я могу предоставить вам подтверждение по индукции, если хотите. –
Да, пожалуйста .. добавьте это также –