Kacam.net

Algoritmos

同样是 O(n log n),为什么快排更快

快排和堆排都是 O(n log n),实测差两三倍。差在哪?

Copie a instrução e escolha um modelo. Ele faz o papel de entrevistador e vai te perguntando ato por ato, em vez de entregar a resposta.

Num celular com o aplicativo instalado, o sistema abre o aplicativo direto. Dentro do WeChat não é possível abrir aplicativos externos — abra primeiro no navegador.

O texto copiado termina com o gabarito que o modelo usa para te avaliar. Não leia antes: o que vale é ter chegado lá sozinho.

大 O 有意扔掉了常数和低阶项,而在真实机器上,被扔掉的那些经常就是全部的差别 —— 一次 L1 命中约 1ns,一次内存访问约 100ns,两个数量级。

这一份逼你算数:动态数组扩容为什么必须翻倍、建堆到底是 O(n) 还是 O(n log n)、1 秒时限下 n=10⁵ 排除了哪些复杂度。答「更快」一律要追「快多少」。

它是 04、05、10 那几份的地基,建议早做。

★★★★☆ · cerca de 40 min · O que é avaliado: 均摊与最坏与平均、常数因子、缓存局部性、数量级估算

O que esta treina

Complexidade Análise amortizada Cache e constantes

Já fez este?

Entre para marcar que já treinou este; da próxima vez você verá em que dia foi.

Anotações de quem já fez

Ninguém escreveu ainda. Depois de fazer, conte o que saiu da conversa: qual ato te travou, qual conclusão você mudou depois.

Entrar para escrever uma anotação.

Como usar

Esta série ensina em vez de interrogar: ela guia, em vez de apertar até você não ter mais o que dizer. Quando você trava, ela pergunta primeiro em que camada (nunca ouvi falar / sei mas não sei por quê / sei por quê mas não consigo escrever) e só então decide o que dar. Só depois de guiar duas vezes no mesmo ponto ela conta — e aí pede que você repita com suas palavras.

Como começar

  1. Escolha uma, abra e copie o prompt.
  2. Cole numa conversa nova e vazia, não diga nada e espere a primeira pergunta.
  3. Trace à mão antes de escrever código — ela vai te interromper. Percorrer um array de tamanho 2 vale mais que escrever o template dez vezes.

Quatro comandos que você pode gritar a qualquer momento

  • 跳过 ir já para a próxima cena
  • 换个说法 explicar esta parte por outro ângulo
  • 直说吧 dar a resposta completa e depois me fazer repetir
  • 复盘 pular para o fechamento e imprimir a ficha de balanço

Três armadilhas

  • Não leia o gabarito do fim antes — aquela seção de «como as pessoas erram o raciocínio» é a resposta de cada pergunta.
  • Não corra para o código. Em algoritmos, escrever código é o jeito mais fácil de esconder que você ainda não pensou direito.
  • Quando começar a te elogiar, mande olhar a regra «não me elogie». Guiar não é fazer carinho.

Não sai a solução? Comece pela definição do estado. Erra sempre os limites? Busca binária e somas de prefixo. Não reconhece o formato do problema? Pilha monotônica e janela deslizante. A de complexidade sustenta várias outras: faça cedo.