Divisão e conquista

Merge sort, subvetor máximo, exponenciação e Hanoi, com recorrências e as condições do teorema mestre.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

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).T(n)=2T(n/2)+\Theta(n),\quad T(1)=\Theta(1).

Θ(nlog⁡n)\Theta(n\log n) por log⁡2n\log_2 n níveis com Θ(n)\Theta(n) cada. Fusão O(n)O(n) auxiliar e O(log⁡n)O(\log n) chamadas.

Teorema mestre

T(n)=aT(n/b)+f(n)T(n)=aT(n/b)+f(n), com a≥1a\ge1, b>1b>1 e ε>0\varepsilon>0. Compara ff com n^{\log_b a:

Trabalho foraResultado
O(nlog⁡ba−ε)O(n^{\log_b a-\varepsilon})Θ(nlog⁡ba)\Theta(n^{\log_b a})
Θ(nlog⁡ba)\Theta(n^{\log_b a})Θ(nlog⁡balog⁡n)\Theta(n^{\log_b a}\log n)
Ω(nlog⁡ba+ε)\Omega(n^{\log_b a+\varepsilon}) com af(n/b)≤cf(n)af(n/b)\le cf(n) para algum c<1c<1 e nn grandeΘ(f(n))\Theta(f(n))

Diferença polinomial e regularidade fazem parte do teste. T(n)=T(n−1)+nT(n)=T(n-1)+n não cabe neste formato; soma direta dá Θ(n2)\Theta(n^2).

Exemplos: 4T(n/2)+n4T(n/2)+n dá Θ(n2)\Theta(n^2); com n2n^2 dá Θ(n2log⁡n)\Theta(n^2\log n); com n3n^3 dá Θ(n3)\Theta(n^3) com regularidade n3/2n^3/2.

Cruzamento, potências e Hanoi

  • Subvetor: divide em m,m+1m,m+1; resposta à esquerda, à direita ou com sufixo esquerdo mais prefixo direito. Cruzamento Θ(n)\Theta(n) dá T=2T(n/2)+Θ(n)T=2T(n/2)+\Theta(n). Com soma, prefixo, sufixo e melhor por nó, combinação O(1)O(1) e T=Θ(n)T=\Theta(n).
  • Pico estrito: compara A[m]A[m] com A[m+1]A[m+1]; descarta metade. O(log⁡n)O(\log n). Com repetições, pode exigir Θ(n)\Theta(n).
  • Potências: a2r=(ar)2a^{2r}=(a^r)^2, a2r+1=a(ar)2a^{2r+1}=a(a^r)^2, a0=1a^0=1. Calcula ara^r uma vez. O(log⁡(k+1))O(\log(k+1)) multiplicações; custo em bits depende do tamanho.
  • Hanoi: H(n)=2H(n−1)+1H(n)=2H(n-1)+1, H(0)=0H(0)=0; solução 2n−12^n-1, também limite inferior. Fora do mestre; gerar sequência custa Θ(2n)\Theta(2^n) com pilha O(n)O(n).

Provas e casos.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.