SlideShare una empresa de Scribd logo
1 de 23
Algoritmos de busqueda
Algoritmo de busqueda
Los algoritmos de busqueda
siempre buscan algo para
comparar.
Ejemplos en donde se
pueden realizar
búsquedas:
-Listas de empleados.
-Listas de boletas y facturas
-etc.
Definición formal de busqueda
La operación de busqueda consta de dos
resultados dentro de las posibilidades dentro de
un conjunto.
- Si pertenece el elemento buscado dentro
del conjunto.
- No pertenece el elemento buscado del
conjunto.
Métodos mas usados para realizar
busqueda
• Busqueda lineal
• Busqueda binaria
• Busqueda por transformación de claves hash
Busqueda lineal
• Se refiere a la busqueda de un
elemento dentro de un vector.
• De forma simple y tediosa, esto quiere decir:
• En caso de no encontrar el elemento su resultado
debe ser: elemento no existe.
• Ventaja: el vector no debe estar ordenado.
• La Búsqueda secuencial busca un elemento de una
lista utilizando un valor destino llamado clave. En una
búsqueda secuencial (a veces llamada Búsqueda
Lineal), los elementos de una lista o vector se exploran
en secuencia, uno después de otro.
• El algoritmo de búsqueda secuencial compara cada
elemento del arreglo con la clave de búsqueda. Dado
que el arreglo no está en un orden prefijado, es
probable que el elemento a buscar pueda ser el
primero, el último o cualquier otro. De promedio, al
menos, el programa tendrá que comparar la clave de
búsqueda con la mitad de los elementos del arreglo.
El método de búsqueda lineal funcionará bien con
arreglos pequeños o no ordenados.
Busqueda binaria
Este tipo de busqueda utiliza el método divide y
vencerás. Para la localización de un elemento.
Particularidad de la busqueda binaria
• La lista debe estar ordenada de acuerdo al valor de la
clave. Para realizar la busqueda.
• Se reduce el vectora la mitad en comparación a< o >
al elemento buscado.
• Al estar ordenada se obtiene el numero total de
registros.
• Es aplicable a arboles binarios y listas.
• El esfuerzo mínimo es 1, el medio 1 log2n, el máximo
log2n
Algoritmo y Codificación de la Búsqueda Binaria
Suponiendo que la lista esté almacenada como un arreglo,
donde los índices de la lista son bajo=0 y alto=n-1, donde
n es el número de elementos del arreglo, los pasos a seguir
son:
1) Calcular el índice del punto central del Arreglo:
central=(bajo+alto)/2 (División Entera)
2) Comparar el valor de este elemento central con la clave:
• Si a[central]<clave, la nueva sublista de búsqueda tiene
por valores extremos de su rango bajo=central+1..alto
• Si clave < a[central], la nueva sublista de búsqueda tiene
por valores extremos de su rango bajo..central-1.
bajo Central-1 = alto bajo= central +1 alto
clave clave
El algoritmo termina o bien porque se ha encontrado la clave
o porque el valor de bajo excede a alto y el algoritmo
devuelve el indicador de fallo -1 (búsqueda no encontrada)
Ejemplo
Sea el arreglo A{-8,4,5,9,12,18,25,40,60}, buscar la
clave 40
-8 4 5 9 12 18 25 40 60
1) a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]
Bajo= 0
Alto = 8
Central = bajo + alto = 0 + 8 = 4
2 2
Central
Clave (40) > a[4] (12)
2) Buscar en sublista derecha.
Central = bajo + alto = 5 + 8 = 6
2 2
Central
Clave (40) > a[6] (25)
18 25 40 60
a[5] a[6] a[7] a[8]
Bajo= 5
Alto = 8
3) Buscar en sublista derecha.
Central = bajo + alto = 7 + 8 = 7
2 2
Central
Clave (40) > a[7] (40) Búsqueda con éxito
40 60
a[7] a[8]
Bajo= 7
Alto = 8
El algoritmo ha requerido 3 comparaciones frente a 8 comparaciones que hubieran realizado
con la búsqueda secuencial
Metodo Hash
• Un hash es el resultado de una función o
algoritmo.
• Se refiere a una función o método para generar claves
o llaves que representen de manera casi unívoca a un
documento, registro, archivo, etc., resumir o identificar
un dato a través de la probabilidad.
Ejemplo de tablas Hash
Requisitos para una tabla Hash
• Una estructura de acceso directo
(normalmente un array).
• Una estructura de datos con una clave
• Una función resumen (hash) cuyo dominio sea el
espacio de claves y su imagen (o rango) los números
naturales.
Encadenamiento
Direccionamiento Abierto
Transformación de claves hashing
-Los elementos no
utilización
-La clave hash
es=H(K)
pueden estar ordenados, para su
H=Función
hash K=Clave
D=Índice
T=Vector
Primera forma
Truncamiento: ignora la parte de la clave y se utiliza la
parte restante.
Direccionamiento como índice.
Considerando campos numéricos y sus códigos
numéricos.
Si tiene claves de 8 dígitos se consideran el primer
elemento el segundo y el quinto.
Ejemplo: 72588495 > h(clave)=728
Segunda Forma
Planteamiento:
Se realiza una división en partes iguales del vector, luego
se realiza la sumatoria o multiplicación de las partes
divididas.
Por ende el resultado final se trunca.
Forma de ecuación :
H(X)= SUMATORIA
DE X.
Tercera forma
Aritmética modular:
Se transforma mediante la utilización de mod sobre el
vector como un entero.
H(X)= X MOD M
Donde x es el vector.
M es el tamaño del arreglo.
Cuarta forma
Mitad del cuadrado:
El vector es tomado (X) y se eleva al
cuadrado. H(x)=c
Por ende el resultado se debe limpiar los dígitos de
los costados.
Ejercicios para realizar
• En un arreglo de 20 números ingresados
aleatoriamente realizar la búsqueda de un numero x a
través de los siguientes métodos
• Búsqueda secuencial
• Búsqueda Binaria

Más contenido relacionado

La actualidad más candente

Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
lichic
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
neltherdaza
 

La actualidad más candente (20)

Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Hash mitad al cuadrado pdf
Hash mitad al cuadrado pdfHash mitad al cuadrado pdf
Hash mitad al cuadrado pdf
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Comparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de OrdenamientoComparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de Ordenamiento
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una cola
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Listas
ListasListas
Listas
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
 

Similar a 5. algoritmos de búsqueda

Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficios
ejosue23
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
Johnfornerod
 
Aritmética Modular
Aritmética ModularAritmética Modular
Aritmética Modular
vvillegass
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion Busqueda
Angie Suarez
 
Estructura de dato unidad 6
Estructura de dato unidad 6Estructura de dato unidad 6
Estructura de dato unidad 6
lenithoz
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
mishuhot
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
Jose Rivera
 

Similar a 5. algoritmos de búsqueda (20)

Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficios
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptx
 
Metodo de busqueda binario koby
Metodo de busqueda binario kobyMetodo de busqueda binario koby
Metodo de busqueda binario koby
 
Analisissss
AnalisissssAnalisissss
Analisissss
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Ejercicios con Python parte 05
Ejercicios con Python parte 05Ejercicios con Python parte 05
Ejercicios con Python parte 05
 
Aritmética Modular
Aritmética ModularAritmética Modular
Aritmética Modular
 
Informe aritmetica modular
Informe aritmetica modularInforme aritmetica modular
Informe aritmetica modular
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Algoritmos de búsqueda
Algoritmos de búsqueda Algoritmos de búsqueda
Algoritmos de búsqueda
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion Busqueda
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Estructura de dato unidad 6
Estructura de dato unidad 6Estructura de dato unidad 6
Estructura de dato unidad 6
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
 
Presentacion recursividad
Presentacion recursividadPresentacion recursividad
Presentacion recursividad
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
 
unidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.pptunidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.ppt
 

Más de Fernando Solis

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
Fernando Solis
 

Más de Fernando Solis (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
AULA INVERTIDA.pdf
AULA INVERTIDA.pdfAULA INVERTIDA.pdf
AULA INVERTIDA.pdf
 
Subcadenas-en-C
Subcadenas-en-CSubcadenas-en-C
Subcadenas-en-C
 
BÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CBÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN C
 
Almacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraAlmacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructura
 
Entrada y salida de datos
Entrada y salida de datosEntrada y salida de datos
Entrada y salida de datos
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y Concatenacion
 
Lectura de datos de cadena
Lectura de datos de cadenaLectura de datos de cadena
Lectura de datos de cadena
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
 
Archivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoArchivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de Texto
 
DEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSDEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGS
 
Declaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaDeclaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadena
 
Conversion de Strings
Conversion de StringsConversion de Strings
Conversion de Strings
 
Comparacion de arreglos Strings
Comparacion de arreglos StringsComparacion de arreglos Strings
Comparacion de arreglos Strings
 
Cadenas y/o strings
Cadenas y/o stringsCadenas y/o strings
Cadenas y/o strings
 
Asignacion
AsignacionAsignacion
Asignacion
 
Acceso en tipos de datos abstractos
Acceso en tipos de datos abstractosAcceso en tipos de datos abstractos
Acceso en tipos de datos abstractos
 
Arreglo Orden Seleccion
Arreglo  Orden SeleccionArreglo  Orden Seleccion
Arreglo Orden Seleccion
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 

5. algoritmos de búsqueda

  • 2. Algoritmo de busqueda Los algoritmos de busqueda siempre buscan algo para comparar. Ejemplos en donde se pueden realizar búsquedas: -Listas de empleados. -Listas de boletas y facturas -etc.
  • 3. Definición formal de busqueda La operación de busqueda consta de dos resultados dentro de las posibilidades dentro de un conjunto. - Si pertenece el elemento buscado dentro del conjunto. - No pertenece el elemento buscado del conjunto.
  • 4. Métodos mas usados para realizar busqueda • Busqueda lineal • Busqueda binaria • Busqueda por transformación de claves hash
  • 5. Busqueda lineal • Se refiere a la busqueda de un elemento dentro de un vector. • De forma simple y tediosa, esto quiere decir: • En caso de no encontrar el elemento su resultado debe ser: elemento no existe. • Ventaja: el vector no debe estar ordenado.
  • 6. • La Búsqueda secuencial busca un elemento de una lista utilizando un valor destino llamado clave. En una búsqueda secuencial (a veces llamada Búsqueda Lineal), los elementos de una lista o vector se exploran en secuencia, uno después de otro. • El algoritmo de búsqueda secuencial compara cada elemento del arreglo con la clave de búsqueda. Dado que el arreglo no está en un orden prefijado, es probable que el elemento a buscar pueda ser el primero, el último o cualquier otro. De promedio, al menos, el programa tendrá que comparar la clave de búsqueda con la mitad de los elementos del arreglo. El método de búsqueda lineal funcionará bien con arreglos pequeños o no ordenados.
  • 7. Busqueda binaria Este tipo de busqueda utiliza el método divide y vencerás. Para la localización de un elemento.
  • 8. Particularidad de la busqueda binaria • La lista debe estar ordenada de acuerdo al valor de la clave. Para realizar la busqueda. • Se reduce el vectora la mitad en comparación a< o > al elemento buscado. • Al estar ordenada se obtiene el numero total de registros. • Es aplicable a arboles binarios y listas. • El esfuerzo mínimo es 1, el medio 1 log2n, el máximo log2n
  • 9. Algoritmo y Codificación de la Búsqueda Binaria Suponiendo que la lista esté almacenada como un arreglo, donde los índices de la lista son bajo=0 y alto=n-1, donde n es el número de elementos del arreglo, los pasos a seguir son: 1) Calcular el índice del punto central del Arreglo: central=(bajo+alto)/2 (División Entera) 2) Comparar el valor de este elemento central con la clave: • Si a[central]<clave, la nueva sublista de búsqueda tiene por valores extremos de su rango bajo=central+1..alto • Si clave < a[central], la nueva sublista de búsqueda tiene por valores extremos de su rango bajo..central-1. bajo Central-1 = alto bajo= central +1 alto clave clave
  • 10. El algoritmo termina o bien porque se ha encontrado la clave o porque el valor de bajo excede a alto y el algoritmo devuelve el indicador de fallo -1 (búsqueda no encontrada) Ejemplo Sea el arreglo A{-8,4,5,9,12,18,25,40,60}, buscar la clave 40 -8 4 5 9 12 18 25 40 60 1) a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] Bajo= 0 Alto = 8 Central = bajo + alto = 0 + 8 = 4 2 2 Central Clave (40) > a[4] (12)
  • 11. 2) Buscar en sublista derecha. Central = bajo + alto = 5 + 8 = 6 2 2 Central Clave (40) > a[6] (25) 18 25 40 60 a[5] a[6] a[7] a[8] Bajo= 5 Alto = 8
  • 12. 3) Buscar en sublista derecha. Central = bajo + alto = 7 + 8 = 7 2 2 Central Clave (40) > a[7] (40) Búsqueda con éxito 40 60 a[7] a[8] Bajo= 7 Alto = 8 El algoritmo ha requerido 3 comparaciones frente a 8 comparaciones que hubieran realizado con la búsqueda secuencial
  • 13. Metodo Hash • Un hash es el resultado de una función o algoritmo. • Se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un documento, registro, archivo, etc., resumir o identificar un dato a través de la probabilidad.
  • 15. Requisitos para una tabla Hash • Una estructura de acceso directo (normalmente un array). • Una estructura de datos con una clave • Una función resumen (hash) cuyo dominio sea el espacio de claves y su imagen (o rango) los números naturales.
  • 18. Transformación de claves hashing -Los elementos no utilización -La clave hash es=H(K) pueden estar ordenados, para su H=Función hash K=Clave D=Índice T=Vector
  • 19. Primera forma Truncamiento: ignora la parte de la clave y se utiliza la parte restante. Direccionamiento como índice. Considerando campos numéricos y sus códigos numéricos. Si tiene claves de 8 dígitos se consideran el primer elemento el segundo y el quinto. Ejemplo: 72588495 > h(clave)=728
  • 20. Segunda Forma Planteamiento: Se realiza una división en partes iguales del vector, luego se realiza la sumatoria o multiplicación de las partes divididas. Por ende el resultado final se trunca. Forma de ecuación : H(X)= SUMATORIA DE X.
  • 21. Tercera forma Aritmética modular: Se transforma mediante la utilización de mod sobre el vector como un entero. H(X)= X MOD M Donde x es el vector. M es el tamaño del arreglo.
  • 22. Cuarta forma Mitad del cuadrado: El vector es tomado (X) y se eleva al cuadrado. H(x)=c Por ende el resultado se debe limpiar los dígitos de los costados.
  • 23. Ejercicios para realizar • En un arreglo de 20 números ingresados aleatoriamente realizar la búsqueda de un numero x a través de los siguientes métodos • Búsqueda secuencial • Búsqueda Binaria