This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Asumiento que quiero hacer una búsqueda binaria en el rango [0, n) | |
// Sabemos que la propiedad/predicado P dentro del rango es una de estas: | |
// Caso 1) 0 0 0 0 0 0 ... 1 1 1 1 1 1 (comienza false, pero una vez que se vuelve true, se mantiene true) | |
// Caso 2) 1 1 1 1 1 1 ... 0 0 0 0 0 0 (comienza true, pero una vez que se vuelve false, se mantiene false) | |
// Declaramos las "fronteras", una izquierda y una derecha, ambas comienzan FUERA del rango de búsqueda | |
int a = -1; // extremo izquierdo del rango de búsqueda -1 | |
int b = n; // extremo derecho del rango de búsqueda +1 | |
while(b - a > 1) { // mientras que la distancia entre las fronteras sea >1 (es decir, mientras que no estén contiguas) |