La búsqueda binaria es una — su estimación de complejidad es O(log2(n)), mientras que la búsqueda secuencial convencional tiene O(n). Esto significa que, por ejemplo, para una matriz de 1024 elementos, una búsqueda lineal, en el peor de los casos, cuando el elemento deseado no está en la matriz, procesará los 1024 elementos. La búsqueda binaria es suficiente para procesar elementos \(log_2(1024) = 10\). Este resultado se logra debido al hecho de que después del primer paso del bucle, el área de búsqueda se reduce a 512 elementos, después del segundo – hasta 256 etc.
O(log2(n))
O(n)
adiós (derecha – izquierda > 1) // Siempre que el borde derecho esté a la derecha de la izquierda nc medio = (izquierda + derecha) /< /span> 2; // Medio del área de búsqueda si (A[medio] >= b) entonces derecha = medio; // Mover el borde derecho de lo contrario izquierda = medio; // De lo contrario, mueva el borde izquierdo cc si (A[derecha] == X) entonces salida derecha; de lo contrario salida -1;
A
N
X
K
NO
1000 ms 32 Mb Rules for program design and list of errors in automatic problem checking