¡Impactante! Casi todas las búsquedas binarias y ordenaciones por fusión están rotas
El ingeniero de software de Google, Joshua Bloch, reveló un error de casi dos décadas oculto en algoritmos de búsqueda binaria, encontrado tanto en el JDK como en 'Perlas de programación' de Jon Bentley. El error se origina en la línea `int mid = (low + high) / 2;`, causando desbordamiento de enteros y excepciones de índice de matriz fuera de los límites cuando la suma de `low` y `high` excede el valor máximo de entero positivo. Este error solo se manifiesta con conjuntos de datos masivos, lo que lo hace particularmente peligroso en la era del big data. El artículo explora varias soluciones y enfatiza que los errores pueden persistir incluso con pruebas y demostraciones rigurosas, instando a los programadores a mantenerse cautelosos y humildes.