La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmos de búsqueda

Presentaciones similares


Presentación del tema: "Algoritmos de búsqueda"— Transcripción de la presentación:

1 Algoritmos de búsqueda
Búsquedas en arreglos Búsqueda en archivos Medición de tiempos de ejecución.

2 Búsquedas Secuencial:
La búsqueda lineal probablemente es sencilla de implementar e intuitiva. Básicamente consiste en buscar de manera secuencial un elemento, es decir, preguntar si el elemento buscado es igual al primero, segundo, tercero y así sucesivamente hasta encontrar el deseado. Entonces este algoritmo tiene una complejidad de O(n).

3 Búsquedas Binaria La búsqueda binaria al igual que otros algoritmos como el quicksort utiliza la técnica divide y vencerás. Uno de los requisitos antes de ejecutar la búsqueda binaria, es que el arreglo debe de estar ordenado. Ejemplo: Debemos ordenarlo

4 Búsqueda binaria Necesitamos una seria de datos para realizar la búsqueda: El elemento en la posición inicio, fin, medio. Y por supuesto el tamaño del arreglo y elemento que queremos buscar. inicio = 0; fin = tam – 1; medio = (inicio + fin) / 2; 1 if(buscado == array[medio]){ 2    cout << "Se encuentra en la posicion " << medio + 1 << endl; 3   return array[medio]; 4 }

5 Búsqueda binaria En caso contrario
1 if(array[medio] > buscado){ 2   fin = medio - 1; 3 } De lo contrario quiere decir que elemento buscado es mayor al del medio, entonces debemos buscar en la otra división del array, por lo tanto el inicio sería el elemento posterior al medio. 1 else { 2   inicio = medio + 1;

6 Medición del método de búsqueda binaria
Crear un proyecto para una aplicación en consola. Copiar el archivo busquedabinaria.cpp. Corregir el código para que los arreglos sean de un tamaño variable. Corregir el código para que asigne en el arreglo números Random. (Ya está no hay que hacerlo) Determinar el factor de crecimiento.

7 Búsqueda por frecuencia
Movimiento hacia el frente: Consiste que la búsqueda de una llave exitosa, se mueva a la primera posición. Ejemplo: X= 8 6, 12, 3, 4, 7, 1, 8, 11, 5, 9, 2 8, 6, 12, 3, 4, 7, 1, 11, 5, 9, 2

8 Búsqueda por frecuencia
Transposión: Es cuando se encuentra la llave, se intercambia con la posición inmediatamente anterior. Ejemplo: X= 8 Los más buscados, están en las primeras posiciones. 6, 12, 3, 4, 7, 1, 8, 11, 5, 9, 2 6, 12, 3, 4, 7, 8, 1, 11, 5, 9, 2

9 Búsqueda hash Hashing consiste en calcular la dirección de la llave. Esta búsqueda tiene a rendimiento O(1). La clave de esta función esta en la fórmula, para realizar la tabla hash. Esta debe devolver números aleatorios que este dentro de la tabla. La fórmula no debe generar colisiones. Se debe plantear una solución para las colisiones. Ejemplos: doble hash, apertura de direcciones, mediante encadenamiento.

10 Ejercicio Realizar un proyecto en consola, para simular la ejecución del hashing Investigar sobre diferentes fórmulas hash. Ejemplo: cuadrado medio, entre otras.


Descargar ppt "Algoritmos de búsqueda"

Presentaciones similares


Anuncios Google