Diccionario DFT
Requisitos del método de búsqueda binaria: 1. Se debe utilizar una estructura de almacenamiento secuencial.
2. Deben estar ordenados según el tamaño de las palabras clave.
Las ventajas y desventajas del método de dos búsquedas son menos comparaciones, búsquedas más rápidas y un mejor rendimiento promedio. Sus desventajas son que requiere ordenar la lista para encontrarla y es difícil de insertar y eliminar. Por lo tanto, el método de media búsqueda es adecuado para buscar listas ordenadas frecuentes que no cambian con frecuencia.
La idea de este algoritmo es: primero comparar las palabras clave registradas en el medio de la tabla con las palabras clave de búsqueda. Si son iguales, la búsqueda es exitosa; de lo contrario, utilice el registro de la posición intermedia; divida la tabla en dos subtablas. Si la palabra clave registrada en la posición media es mayor que la palabra clave de búsqueda, se buscará más en la subtabla anterior; de lo contrario, se buscará más en la subtabla siguiente.
Repita el proceso anterior hasta encontrar un registro que cumpla las condiciones y la búsqueda sea exitosa, o hasta que la subtabla no exista, en cuyo caso la búsqueda no será exitosa.
Complejidad algorítmica Supongamos que la longitud de la matriz es n y la complejidad del algoritmo es o(log(n)).
A continuación se proporciona un pseudocódigo para la implementación del método de búsqueda binaria:
Búsqueda binaria (máximo, mínimo, mínimo)
mid-& lt; valor máximo + valor mínimo)/2
mientras (min & lt; = valor máximo)
Valor medio = (valor mínimo + valor máximo)/2
Si
mid=des
Entonces
regresar
medio
elsef
Medio
& gtEstándar de cifrado de datos
Entonces
max=mid-1
Otro
min= mid+1
Retorno
Máximo
El método de semibúsqueda, también conocido como método de búsqueda binaria, aprovecha al máximo la relación secuencial entre elementos. usando varias estrategias para derrotarse entre sí, en el peor de los casos, se puede usar O(log.
n) para completar la tarea de búsqueda. Su idea básica es dividir n elementos en dos mitades de aproximadamente el mismo número, comparar a [n/2] con la X que se va a encontrar, si X = a [n/2], luego encontrar X y el algoritmo termina. Como
Fruit x & ltA[n/2], entonces solo necesitamos continuar buscando X en la mitad izquierda de la matriz A (suponiendo que los elementos de la matriz aquí estén organizados en orden ascendente). Si x & gta[n/2], entonces solo necesitamos estar en el lado derecho de la matriz a.
La mitad de ellos continúa buscando x.
[Editar este párrafo] Código de lenguaje C
(Igual que Organizaciones internacionales) Organizaciones internacionales
BinSearch (secuencia
r, clave type
k ) {
//Ejecute el método de búsqueda binaria...n] en la lista ordenada R [1], si tiene éxito, devuelva la posición del nodo, si falla, devuelve cero.
(Igual que las organizaciones internacionales) Organizaciones internacionales
Bajo=1, alto=n, medio
//Establezca los valores iniciales de los niveles superior y límites inferiores del intervalo de búsqueda actual.
while(low<=high){
//El intervalo de búsqueda actual r[low...high] no está vacío.
mid=low+((Alto-Bajo)/2); //Usar
(Bajo
+
Alto)
/
2
Se producirá un problema de desbordamiento de enteros.
if (R[mid].key==K)
Return
mid
//La búsqueda se devuelve con éxito.
if(R【medio】.
key & gtk)
Alto = mid 1;
//Continuar buscando en r【low...mid-1】
Otros p >
bajo = medio+1;
//Continuar buscando en r[medio+1...alto]
}
Regresar
0;
//Cuando el nivel es bajo& gtAlto significa que el intervalo de búsqueda está vacío y la búsqueda falla.
}
//BinSeareh