Busca binária pra localizar onde o estado corrompe
Pergunta
Um valor está errado no fim de um processamento de 300 linhas, mas certo na entrada. Como você usa busca binária pra achar onde ele corrompe, sem ler linha por linha?
Resposta esperada
Coloque uma verificação (assert/log do valor) no meio do fluxo. Se o valor já está errado ali, o problema está na primeira metade; se ainda está certo, está na segunda. Repita bisseccionando a metade suspeita — ~8-9 checagens localizam a linha exata num fluxo de centenas. Vale pra código, mas também pra dados (qual registro do arquivo dispara), pra tempo (`git bisect` entre commits), e pra configuração (desligar metade das flags/plugins). O princípio é sempre cortar o espaço de busca pela metade a cada passo, em vez de varrer linearmente.
Por que perguntam isso
Pergunta pleno. Bom candidato generaliza a técnica (código, dados, tempo, config), não só 'coloco um log no meio'.