Merge e recorrência
Divide, ordena metades e funde com menores disponíveis. Estável se esquerda vence empates.
T(n)=2T(n/2)+Θ(n),T(1)=Θ(1).
Θ(nlogn) por log2n níveis com Θ(n) cada. Fusão O(n) auxiliar e O(logn) chamadas.
Teorema mestre
T(n)=aT(n/b)+f(n), com a≥1, b>1 e ε>0. Compara f com n^{\log_b a:
| Trabalho fora | Resultado |
|---|
| O(nlogba−ε) | Θ(nlogba) |
| Θ(nlogba) | Θ(nlogbalogn) |
| Ω(nlogba+ε) com af(n/b)≤cf(n) para algum c<1 e n grande | Θ(f(n)) |
Diferença polinomial e regularidade fazem parte do teste. T(n)=T(n−1)+n não cabe neste formato; soma direta dá Θ(n2).
Exemplos: 4T(n/2)+n dá Θ(n2); com n2 dá Θ(n2logn); com n3 dá Θ(n3) com regularidade n3/2.
Cruzamento, potências e Hanoi
- Subvetor: divide em m,m+1; resposta à esquerda, à direita ou com sufixo esquerdo mais prefixo direito. Cruzamento Θ(n) dá T=2T(n/2)+Θ(n). Com soma, prefixo, sufixo e melhor por nó, combinação O(1) e T=Θ(n).
- Pico estrito: compara A[m] com A[m+1]; descarta metade. O(logn). Com repetições, pode exigir Θ(n).
- Potências: a2r=(ar)2, a2r+1=a(ar)2, a0=1. Calcula ar uma vez. O(log(k+1)) multiplicações; custo em bits depende do tamanho.
- Hanoi: H(n)=2H(n−1)+1, H(0)=0; solução 2n−1, também limite inferior. Fora do mestre; gerar sequência custa Θ(2n) com pilha O(n).
Provas e casos.