Depende del tamaño de una matriz. Si el tamaño de la matriz es muy pequeño, las diferencias entre el rendimiento de los métodos de búsqueda serán insignificantes.
Si el tamaño de la matriz es considerablemente grande, se utiliza la búsqueda binaria. Para esto, la matriz debe estar ordenada.
- Si se ordenan los datos, se puede realizar una búsqueda binaria (Figura). Las variables Lb y Ub realizan un seguimiento del límite inferior y el límite superior de la matriz, respectivamente.
- Comenzamos examinando la posición del elemento medio – M de la matriz.
- Supongamos que el valor que estamos buscando es mayor que el valor del elemento en la matriz [M], entonces debe residir en la mitad superior de la matriz.
- Por lo tanto, establecemos Lb en M. Vuelva a calcular el valor de M.
- Esto restringe nuestra próxima iteración a través del bucle a la mitad de la matriz.
- De esta manera, cada iteración reduce a la mitad el tamaño de la matriz a buscar.
- Por ejemplo, la primera iteración dejará 3 elementos para probar. Después de la segunda iteración, quedará 1 elemento para probar. Por lo tanto, solo se necesitan tres iteraciones para encontrar cualquier número.
En el caso de una matriz sin clasificar, la búsqueda secuencial es la única opción que queda. Vea este enlace para más detalles.
¿Cuál es el algoritmo más eficiente para “Dada una matriz sin clasificar de enteros positivos y un entero N, devuelve N si N existió en la matriz o el primer número que es menor que N.” ¿Problema?
- ¿Por qué la programación dinámica se llama programación dinámica?
- ¿Cómo ordenar una matriz de enteros proporcionados como una cadena como entrada desde la línea de comandos, usando lenguaje C?
- ¿Cuál es la estructura de datos utilizada para realizar la recursividad?
- Cómo diseñar algoritmos de aprendizaje automático desde cero
- Como principiante, ¿debo invertir mi tiempo en escribir mi propio algoritmo de aprendizaje automático desde cero?