¿Qué algoritmo de búsqueda aplicaría para la siguiente matriz y por qué?

Dado un conjunto de enteros: 12,15,5,14,1,8,6,19,21,18 .

¿Qué algoritmo de búsqueda aplicarías para esta matriz y por qué?

Realmente depende del propósito de su búsqueda.

¿Está buscando un valor particular dentro de la matriz o está buscando un valor correspondiente a un índice en la matriz?

Por ejemplo, si está buscando el valor 1 en esta pequeña matriz, podría realizar una búsqueda lineal simple. Tenga en cuenta que dicha búsqueda debe tener en cuenta la posibilidad de que la matriz no contenga el valor que está buscando.

Si cada valor en la matriz corresponde al recuento de uno de los 10 artículos diferentes en un inventario de la tienda, simplemente indexe directamente en el elemento correspondiente al artículo de interés. El acceso directo a través de un índice es la búsqueda más eficiente en este caso.

¡Usaría este porque es rápido y no lo esperabas!

const int [] índices = {-1, 4, -1, -1, -1, 2, 6, -1, 5, -1, -1,
-1, 0, -1, 3, 1, -1, -1, 9, 7, -1, 8};

// devuelve un índice basado en 0 de la clave dada o -1 si no se encuentra
int search_index (clave int) {
tecla de retorno <0 || clave> 21? -1: índices [clave];
}

simplemente podría aplicar la búsqueda binaria para esto si está utilizando c ++ y luego

incluya “algoritmo” en su programa y use binary_search (arr, arr + n, ele);

donde arr es la matriz, arr + n es la longitud de la matriz y ele es el elemento.

Depende de cuántas veces queremos buscar un número entero en esta matriz.

Si queremos buscar el elemento solo una vez o queremos que el algoritmo de búsqueda se ejecute solo una vez, entonces podemos verificar todos los enteros en la matriz uno por uno y compararlos con nuestro entero dado. Esto tomará O (n) complejidad de tiempo.

Si queremos que nuestro algoritmo de búsqueda se ejecute con frecuencia, significa que queremos buscar los enteros en esta matriz con frecuencia, primero debemos ordenar esta matriz. Para la ordenación podemos usar la ordenación rápida con complejidad de tiempo promedio n log (n) y luego podemos usar la búsqueda binaria para el algoritmo de búsqueda con la complejidad de tiempo log (n). Con este método, nuestra complejidad de tiempo general será menor.

Espero que esto te ayude.

Una búsqueda secuencial simple porque es muy corta y la búsqueda secuencial es fácil de implementar. Además, uno no puede usar la búsqueda binaria porque la lista no está ordenada.