1 / 12

Búsqueda

Búsqueda. Introducción Algoritmos Complejidad. Introducción. Se trata de hallar un elemento de dato a través de una valor llave. Existen dos grupos de métodos de búsqueda: Métodos simples: Búsqueda lineal sobre un array Búsqueda lineal sobre una lista enlazada

tejana
Download Presentation

Búsqueda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Búsqueda • Introducción • Algoritmos • Complejidad

  2. Introducción • Se trata de hallar un elemento de dato a través de una valor llave. Existen dos grupos de métodos de búsqueda: • Métodos simples: • Búsqueda lineal sobre un array • Búsqueda lineal sobre una lista enlazada • Búsqueda lineal sobre un array ordenado • Búsqueda lineal sobre una lista enlazada

  3. Introducción • Métodos avanzados: • Búsqueda binaria sobre un array ordenado • Búsqueda por interpolación sobre un array ordenado • Búsqueda por interpolación sobre un array ordenado • Búsqueda binaria sobre un árbol binario de búsqueda • Búsqueda usando estrategia hash

  4. Algoritmos • Búsqueda lineal sobre un array Consiste en una búsqueda secuencial sobre el array. • Búsqueda lineal sobre una lista enlazada Consiste en una búsqueda secuencial sobre la lista. • Búsqueda lineal sobre un array ordenado Consiste en una búsqueda secuencial sobre el array • Búsqueda lineal sobre una lista ordenada Consiste en una búsqueda secuencial sobre la lista

  5. Algoritmos • Búsqueda binaria sobre un array ordenado Aplica la técnica de dividir y vencer. Consiste en dividir por la mitad el array original obteniendo dos subarrays. La búsqueda se limita a uno de los subarrays.

  6. Algoritmo Búsqueda Binaria Hallar elemento 22

  7. Algoritmo Búsqueda Binaria Hallar elemento 22

  8. Algoritmo Búsqueda Binaria Hallar elemento 22

  9. Algoritmo Búsqueda Binaria Hallar elemento 22

  10. Algoritmo Búsqueda Binaria Pseudocódigo (versión recursiva): Algorithm BinarySearch(S, k, low, high) if low > high then returnNO_EXISTE_LLAVE else mid  (low+high) / 2 if k = key(mid) then return key(mid) else if k < key(mid) then returnBinarySearch(S, k, low, mid-1) else returnBinarySearch(S, k, mid+1, high)

  11. Algoritmo Búsqueda Binaria Tiempo de ejecución: • El rango de elementos candidatos a buscar es la mitad después de cada comparación. • En la implementación con array, el acceso por rango toma un tiempo O(1), por tanto, la búsqueda binaria corre en un tiempo O(log n).

  12. Algoritmos • Búsqueda por interpolación sobre un array ordenado Es un método mejorado al de búsqueda binaria. Se diferencia de ella en que la partición de los subarrays se realiza de manera lineal según la siguiente fórmula: ind_interp = entero (Pri + (Ult - Pri -1) (llave - A[Pri]) ) A[Ulti] - A[Prim] • Búsqueda por Fibonacci sobre un array ordenado Es un método mejorado al de búsqueda binaria. Se diferencia de ella en que la partición de los subarrays se realiza usando los números de Fibonacci: Fib[0] = 0, Fib[1] = 1, Fib[k] = Fib[k-1] + Fib[k-2] k>1

More Related