¿Cuáles son las condiciones previas de la búsqueda binaria y qué papel desempeñan?

Las condiciones previas son:

  1. Debe haber una manera de comparar cualquiera de los dos elementos de la matriz y obtener que el primero es más pequeño, el segundo es más pequeño o son iguales. Este resultado debe ser determinista, en el sentido de que si los compara una vez más, los resultados deben ser los mismos.
  2. La matriz debe ordenarse en orden creciente o decreciente de acuerdo con el operador de comparación anterior.

Supongamos que la matriz está ordenada en orden creciente. El papel de estas condiciones previas está en el corolario de ellas de que si compara un elemento de la matriz con el valor que está buscando, si el elemento es menor que el valor, el elemento que está buscando puede estar solo a la derecha desde este elemento, de lo contrario solo puede estar a la izquierda. Esto a su vez le permite reducir a la mitad el número de elementos a examinar después de cada comparación que realice. Para los detalles, mira esto.

La condición previa principal es que los datos en la estructura, ya sea un árbol (binario, rojo-negro, Kd, ​​etc.) o una matriz, es que los datos están ordenados. De modo que si tiene un espacio de búsqueda, y mira en el medio, y encuentra que lo que busca es más grande que el valor que está buscando, puede ignorar por completo todo a la izquierda y reducir su espacio de búsqueda a la mitad.

Esto significa que cada iteración de la búsqueda reduce su espacio a la mitad y encuentra su resultado o la búsqueda termina en un error en el peor de los casos, proporcional al tiempo del registro del tamaño del conjunto de datos.

Si los datos no están tan ordenados, tiene que pasar, en el peor de los casos, todo el conjunto para encontrar lo que desea o ver que no está allí.