Eu estou olhando para a recorrência
T( n ) = T( n / 2 ) + T( n / 3 ) + n ,
que descreve o tempo de execução de algum algoritmo não especificado (casos base não são fornecidos).
Usando indução, descobri que T( n ) = O ( n logn ), mas foi informado que isso não é justo. De fato, assuma indutivamente queT( k ) ≤ Ck logk para todos k < n (e valores suficientemente grandes de k), então
T( N )≤ Cn2registron2+ Cn3registron3+ n= C56n logn - n ( C/ 2+Cregistro3 / 3 - 1 ) .
Agora eu escolho C grande o suficiente para ( C/ 2+Cregistro3 / 3 - 1 ) > 0e, portanto, a última expressão é dominada por C56n logn ≤ Cn logn.
Minha primeira pergunta é: o que é mais restrito que isso?
Segundo, tentei usar o método Akra-Bazzi para resolver isso, então vamos p resolver
(1 12)p+(1 13)p= 1.
Então aproximadamente p = 0,79, e com g( n ) = n) Eu recebo
∫n1 1g( U )vocêp + 1du =∫n1 11 1vocêpdu =1 11 - p(n1 - p- 1 ) ,
e entao
T( n ) = Θ (np( 1 +1 11 - p(n1 - p( 1 ) ) ) .
Isso é igual a Θ(np+11−pn−11−pnp), de modo geral Θ(n), Desde a p<1. Minha segunda pergunta é que eu realmente não acredito nissoT é linear, então o que deu errado na minha aplicação do Akra-Bazzi?
Cumprimentos.