Chocante! Quase todas as buscas binárias e ordenações por intercalação estão quebradas
2025-01-11

O engenheiro de software do Google, Joshua Bloch, revelou um bug de quase duas décadas escondido em algoritmos de busca binária, encontrado tanto no JDK quanto em 'Programming Pearls' de Jon Bentley! O bug origina-se da linha `int mid = (low + high) / 2;`, causando estouro de inteiro e exceções de índice de array fora dos limites quando a soma de `low` e `high` excede o valor máximo de inteiro positivo. Esse bug só se manifesta com conjuntos de dados massivos, tornando-o particularmente perigoso na era dos big data. O artigo explora várias correções e enfatiza que bugs podem persistir mesmo com testes e provas rigorosos, incentivando os programadores a permanecerem cautelosos e humildes.