SlideShare una empresa de Scribd logo
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad VI: Métodos de Búsqueda
Competencia de la Unidad
• Aplicar el método de búsqueda pertinente en la solución de un problema
real.
Temario
INTRODUCCIÓN
• Una de las funciones que con mayor frecuencia se utiliza en los
sistemas de información, es el de las consultas a los datos, se hace
necesario utilizar algoritmos, que permitan realizar búsquedas de
forma rápida y eficiente.
• La búsqueda, se puede decir que es la acción de recuperar datos o
información, siendo una de las actividades que más aplicaciones
tiene en los sistemas de información.
• Más formalmente se puede definir como “La operación de búsqueda
sobre una estructura de datos es aquella que permite localizar un
nodo en particular si es que éste existe” (Euán, 1989).
Clasificación de las Búsquedas
•La llave es el campo por el cual
se va a realizar la búsqueda. La
búsqueda por comparación de
llaves son algoritmos bastante
sencillos, en estos se van
comparando e las llaves.
•En la transformación de llaves
los algoritmos deben de ser
mucho más analizados, ya que
transforma las llaves por varios
métodos, indicando en que
posición del arreglo o del
archivo se almacenan o se
recuperan.
Búsqueda Lineal o Secuencial
BÚSQUEDA LINEAL O SECUENCIAL
• Este tipo de búsqueda consiste en examinar, a partir del primer elemento y de
uno en uno, hasta encontrar el dato buscado o bien llegar al final de la lista
que puede estar almacenada en archivo o arreglo.
• En este tipo de listas los elementos pueden o no estar ordenados, ya que se
empieza a comparar de uno en uno los elementos de la lista y no importa su
orden o lugar de ubicación para realizar la búsqueda, salvo para el tiempo de
ejecución.
• Si el elemento que se está buscando, se encuentra al inicio de la lista, este
tiempo, sería muy corto, pero si se encuentra al final, va a tardar más y si el
elemento que se desea buscar, no se encuentra en la lista, se hizo necesario,
recorrer toda la lista, para darse cuenta que no está en ella.
• Y si se le aumenta a esto, que el número de elementos en la lista puede ser del
orden de cientos o miles, va a hacer mucho más tardado su ejecución.
• Esta búsqueda tiene la ventaja de tener una fácil programación de su
algoritmo.
• Si el elemento que se está buscando, se encuentra al inicio de la lista, este
tiempo, sería muy corto, pero si se encuentra al final, va a tardar más y si el
elemento que se desea buscar, no se encuentra en la lista, se hizo necesario,
recorrer toda la lista, para darse cuenta que no está en ella.
• Y si se le aumenta a esto, que el número de elementos en la lista puede ser del
orden de cientos o miles, va a hacer mucho más tardado su ejecución.
• Esta búsqueda tiene la ventaja de tener una fácil programación de su
algoritmo.
ALGORITMO PARA BÚSQUEDA SECUENCIAL
int x, i=0
bool bandera=false
CAPTURAR x
ABRIR (archivo)
MIENTRAS no sea fin de archivo
LEER REGISTRO (ARCHIVO)
INCREMENTAR i
SI llave = x entonces
DESPLEGAR “Registro encontrado; ”
DESPLEGAR “posición: ” i
bandera=true
FINSI
FINMIENTRAS
CERRAR (ARCHIVO)
SI bandera = false
DESPLEGAR “Registro no encontrado“
FINSI
MANEJO DE ARCHIVOS DE TEXTO EN C++
• Para poder realizar el programa es necesario primero conocer las instrucciones
y la lógica con la que se trabaja un archivo de texto.
• Un archivo de texto contiene la información guardada sin ningún formato, en
caso de requerirse un formato en particular, debe ser diseñado antes de
guardar la información.
INSTRUCCIONES PARA MANEJO DE ARCHIVOS DE TEXTO
• <stdio.h>: esta librería contiene las instrucciones para el manejo de archivos
ya sea de texto o binarios, por lo que es obligatorio incluirla en la cabecera del
programa.
• fopen(archivo, modo): esta función controla la apertura de un archivo, se
requiere asignar el resultado a una variable apuntador de tipo FILE, la cual en
caso de que el archivo no exista o por alguna razón no pueda ser abierto
regresa NULL.
Sintaxis:
FILE *archivo;
archivo=fopen(“c:alumnos.txt”, “w”);
If (archivo==NULL)
cout<<"El archivo no fue creado"
MODOS DE APERTURA DE UN ARCHIVO
• fputs(): Una vez que el archivo fue creado o abierto para agregar información,
podemos hacer esta acción por medio de la instrucción fputs().
Sintaxis:
fputs(char cadena, FILE archivo);
Dónde:
• Cadena: Es una variable tipo char.
• Archivo: Es una variable tipo apuntador FILE, el archivo al que apunta
debió ser abierto previamente.
• fgets(): Los archivos también pueden ser leídos, es decir su información puede
ser extraída y puesta en pantalla u otro medio de impresión por medio de la
instrucción fgets(). Esta instrucción mueve el apuntador del archivo un registro
por cada vez que se use.
Sintaxis:
fgets(char cadena, int longitud, FILE archivo);
Dónde:
• Cadena: Es una variable tipo char.
• Longitud: Es la longitud máxima de la cadena a leer, en caso de que se
encuentre un salto de línea o fin de archivo la lectura se detiene en ese
punto.
• Archivo: Es una variable apuntador de tipo FILE, el archivo al que apunta
debió ser abierto previamente.
COMPROBAR FINAL DE ARCHIVO
• feof(archivo): Cada vez que se mueve el apuntador del archivo la función
booleana feof(FILE archivo) puede ser usada, dicha función regresa true si el
fin de archivo ya fue alcanzado y false si aún no se ha encontrado.
Sintaxis:
if (feof(archivo))
cout<<“No hay mas registros en el archivo”;
CIERRE DE ARCHIVOS
• fclose(archivo): Antes de cerrar nuestro programa una vez que terminamos de
leer todos los registros, esto se hace con la instrucción fclose(archivo), el
archivo al que apunta debió ser abierto previamente para que no regrese
errores.
• Es muy importante que esta instrucción sea utilizada ya que C++ libera la
memoria y recursos utilizados para el archivo cuando encuentra esta
instrucción. Además, mientras que no sea cerrado el archivo, el sistema
operativo no lo libera, por lo que no puede ser modificado o eliminado vía
COMMAND y/o Explorador de Windows.
Ejercicio:
• Realizar un programa que genere un archivo de texto con 500 llaves
secuenciales aleatorias (no necesariamente estarán ordenadas).
• Una vez que el archivo esté creado se debe capturar un número entero
cualquiera y verificar si dicho número está contenido en el archivo utilizando el
método de búsqueda secuencial.
• Desplegar los mensajes correspondientes ya sea que se encontró la llave o que
la búsqueda no fue exitosa.
Nota: Debido a que las llaves en el archivo de texto se guardan en modo char, la
verificación requiere que dichas llaves sean convertidas a tipo int para poder
realizar comparaciones.
Trabajando con Búsquedas Secuenciales en Archivos de Texto
Variables globales Módulo main
MÓDULO PARA
CREAR ARCHIVO
DE TEXTO
MÓDULO PARA
REALIZAR LA
BÚSQUEDA
Búsqueda Binaria
BÚSQUEDA BINARIA
• La búsqueda Binaria o por Bisección no representa mucha dificultad para la
programación de su algoritmo y además, es muy rápida su ejecución.
• Este algoritmo requiere que los elementos de la lista sobre la que va a actuar
sean ordenados previamente, ya sea en forma ascendente o descendente,
cada elemento de la lista puede tener varios campos. La lista se considera que
empieza a almacenar sus elementos en la posición cero.
• Va a utilizarse tres apuntadores, uno en la primera posición de la lista que se le
denominara LI, para efectos de la explicación, otro en la última conocido como
LS y el que apunte en la parte central, el cual se obtiene de la suma de LS mas
LI entre dos (LI + LS/ 2) y tomando la parte entera, el cual se le llamará M.
A diferencia de la Búsqueda Secuencial, aquí el número de comparaciones no se
comporta en forma lineal, ya que procede a realizar los siguientes pasos:
• Dividir la lista en dos partes, al determinar el elemento central de dicha lista,
con lo que se iniciará el apuntador M.
• Comparar el valor del elemento buscado con el central.
• Si resultan ser iguales, las búsquedas termina con éxito, indicando en qué
posición se encontró y cuáles son los datos que están en esa posición.
• En el caso de no ser iguales, se redefinen la posición de alguno de los
apuntadores de los extremos (LI o LS), dependiendo del valor del elemento
central, sea mayor o menor que el buscado.
• Ejemplo: se cuenta con un arreglo ordenado de 8 posiciones, se desea buscar
la ubicación del número 17. Aplicar el método de búsqueda binario.
Asignamos posiciones a LI, LS y M
LI=0; LS=tamaño-1  LS=7; M=(0+7)/2  M=3;
LI=0 LS=7M=3
Comparamos si el número buscado es igual al valor en la posición M, de ser así
el proceso termina; SINO
Si el número en la posición M es menor LS=M-1; SINO
Si el número en la posición M es mayor LI=M+1
El número 17 es mayor, LI=4; Se repite el proceso
• Tomamos el arreglo completo y reasignamos posiciones a los límites
Asignamos posiciones LI, LS y M
LI=4; LS=7; M=(4+7)/2  M=5;
LI=4 LS=7M=5
Comparamos si el número buscado es igual al valor en la posición M, de ser así
el proceso termina; SINO
Si el número en la posición M es menor LS=M-1; SINO
Si el número en la posición M es mayor LI=M+1
El número 17 es mayor, LI=6; Se repite el proceso
• Tomamos el arreglo completo y reasignamos posiciones a los límites
Asignamos posiciones a LI, LS y M
LI=6; LS=7; M=(6+7)/2  M=6;
LI=6 LS=7
M=6
Comparamos si el número buscado es igual al valor en la posición M,
de ser así el proceso termina;
CODIFICACIÓN DE BÚSQUEDA BINARIA EN C++ USANDO ARREGLOS
 Variables globales
 Módulo main
 Módulo de Búsqueda
Binaria
• Ejercicio: Realice la programación del método de búsqueda binaria usando
arreglos y basándose en el código visto en clase.
• Entregar el programa ya funcionando y probado.
TRANSFORMACIÓN DE LLAVES
O TABLAS DE HASH
BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE CLAVES (HASHING)
• Es un método de búsqueda que aumenta la velocidad de búsqueda, pero que
no requiere que los elementos estén ordenados.
• Consiste en asignar a cada elemento un índice mediante una transformación
del elemento. Esta correspondencia se realiza mediante una función de
conversión, llamada función hash.
• La correspondencia más sencilla es la identidad, esto es, al número 0 se le
asigna el índice 0, al elemento 1 el índice 1, y así sucesivamente.
• Pero si los números a almacenar son demasiado grandes esta función es
inservible.
• Por ejemplo, se quiere guardar en un array la información de los 1000 usuarios
de una empresa, y se elige el número llave como elemento identificador.
• Es inviable hacer un array de 100.000.000 elementos, sobre todo porque se
desaprovecha demasiado espacio.
• Por eso, se realiza una transformación al número de llave para que nos de un
número menor, por ejemplo coger las 3 últimas cifras para guardar a los
empleados en un array de 1000 elementos.
• Para buscar a uno de ellos, bastaría con realizar la transformación a su DNI y
ver si está o no en el array.
• La función de hash ideal debería ser biyectiva, esto es, que a cada elemento le
corresponda un índice, y que a cada índice le corresponda un elemento, pero
no siempre es fácil encontrar esa función, e incluso a veces es inútil, ya que
puedes no saber el número de elementos a almacenar.
• Restas sucesivas: esta función se emplea con claves numéricas entre las que
existen huecos de tamaño conocido, obteniéndose direcciones consecutivas.
• Por ejemplo, si el número de expediente de un alumno universitario está
formado por el año de entrada en la universidad, seguido de un número
identificativo de tres cifras, y suponiendo que entran un máximo de 1000
alumnos al año, se le asignarían las claves:
Clave 1998-000  0 = 1998000-1998000; el consecutivo es 000
Clave 1998-457  457 = 1998457-1998000; el consecutivo es 457
Clave 1998-970  970 = 1998970-1998000; el consecutivo es 970
Tarea: Existen otras formas de determinar la posición de la clave en el arreglo,
como lo son las siguientes:
• Aritmética modular
• Mitad del cuadrado
• Truncamiento
• Plegamiento
• Tratamiento de colisiones
Investigar sobre los métodos mencionados arriba y entregar resumen escrito
TRABAJANDO CON TABLAS HASH CON EL MÉTODO DE RESTAS SUCESIVAS
• Una tabla hash está compuesta por al menos dos elementos que forman una
pareja, la llave, y la información que contiene relacionada.
• Una función hash es método para generar claves o llaves que representen de
manera casi única a un documento o conjunto de datos. Es una operación
matemática que se realiza sobre este conjunto de datos de cualquier longitud,
y su salida es una huella digital, de tamaño fijo e independiente de la
dimensión del conjunto de datos originales.
• La tabla hash usa una función de dispersión para colocar los elementos, de
forma que no se pueden recorrer secuencialmente, pero a cambio el acceso a
partir de la clave es muy rápido, más que si hacemos una búsqueda secuencial
o binaria.
Ejercicio:
• Realice un programa utilizando Tablas Hash y el método de Restas Sucesivas.
Dicho programa debe capturar llave y nombre del estudiante.
• Se tomará como base para generar la llave el año 2016 y el máximo de
alumnos a capturar es de 1000 (desde consecutivo 000 al consecutivo 999).
• El programa debe permitir, Insertar, Eliminar, Verificar Posición, y Realizar
Recorrido del arreglo que contiene la información.
MÓDULO PARA
INICIAR ARREGLOS
VARIABLES
GLOBALES
MÓDULO PARA
CALCULAR POSICION
EN LA TABLA HASH
MÓDULO PARA RECORRAR
LA TABLA HASH
MÓDULO PARA INSERTAR
EN LA TABLA HASH
MÓDULO PARA ELIMINAR
EN LA TABLA HASH
MÓDULO
MAIN
ESTRUCTURADEDATOS
Bibliografía
• Joyanes, Zahonero. Estructura de Datos en C++. McGraw Hill. Madrid, España.
2007. ISBN: 978-84-481-5645-9.
• EUÁN AVILA JORGE IVAN Y CORDERO BORBOA LUIS GONZAGA., Estructuras de
datos, (1ª reimpresión.), MÉXICO, LIMUSA, tomada de la primera edición de la
UNAM (FACULTAD DE INGENIERÍA), 1989.

Más contenido relacionado

La actualidad más candente

Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externoFernando Solis
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externaEdwin Narváez
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 

La actualidad más candente (20)

Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Colas
ColasColas
Colas
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 

Destacado

Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Stalin Eduardo Tusa Vitar
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloJosé Antonio Sandoval Acosta
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...José Antonio Sandoval Acosta
 
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosFundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...José Antonio Sandoval Acosta
 
M1 actividad 3.1 - Presentación dimensión académica
M1 actividad 3.1 - Presentación dimensión académicaM1 actividad 3.1 - Presentación dimensión académica
M1 actividad 3.1 - Presentación dimensión académicaJosé Antonio Sandoval Acosta
 
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD MovilesBD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD MovilesJosé Antonio Sandoval Acosta
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Simulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónSimulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónJosé Antonio Sandoval Acosta
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...José Antonio Sandoval Acosta
 
Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesJosé Antonio Sandoval Acosta
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoJosé Antonio Sandoval Acosta
 
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADEstructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADJosé Antonio Sandoval Acosta
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 

Destacado (20)

Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
 
Ingenieria de software - Unidad 4 seguridad
Ingenieria de software - Unidad 4 seguridadIngenieria de software - Unidad 4 seguridad
Ingenieria de software - Unidad 4 seguridad
 
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015 M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
 
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosFundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
 
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
Bases de Datos para Dispositivos Móviles - Unidad II: Arquitectura de Base de...
 
M1 actividad 3.1 - Presentación dimensión académica
M1 actividad 3.1 - Presentación dimensión académicaM1 actividad 3.1 - Presentación dimensión académica
M1 actividad 3.1 - Presentación dimensión académica
 
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD MovilesBD para Dispositivos Moviles - Unidad 3 SMBD Moviles
BD para Dispositivos Moviles - Unidad 3 SMBD Moviles
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Simulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la SimulaciónSimulacion para ISC - Unidad 1 Introducción a la Simulación
Simulacion para ISC - Unidad 1 Introducción a la Simulación
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras Lineales
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujo
 
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADEstructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 

Similar a Estructura de Datos - Unidad 6 Metodos de busqueda

Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaJosé Antonio Sandoval Acosta
 
diapositivas-150217175042-conversion-gate02.pptx
diapositivas-150217175042-conversion-gate02.pptxdiapositivas-150217175042-conversion-gate02.pptx
diapositivas-150217175042-conversion-gate02.pptxJeanCorrCol
 
Recursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaRecursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaEuniceLeguiasGonzale
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaIrvingMoran4
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaJose Rivera
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectoressirekarol
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctoresmishuhot
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Listas en el lenguaje de programación Python
Listas en el lenguaje de programación PythonListas en el lenguaje de programación Python
Listas en el lenguaje de programación PythonJoelMedina272402
 
2rias5me
2rias5me2rias5me
2rias5mehtmrk
 
Grupo 1 Archivos Secuenciales Indexados en C++
Grupo 1 Archivos Secuenciales Indexados en C++Grupo 1 Archivos Secuenciales Indexados en C++
Grupo 1 Archivos Secuenciales Indexados en C++panchorc1
 
Presentacion del proyecto archivos inexados
Presentacion del proyecto archivos inexadosPresentacion del proyecto archivos inexados
Presentacion del proyecto archivos inexados30702015
 

Similar a Estructura de Datos - Unidad 6 Metodos de busqueda (20)

Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de Búsqueda
 
diapositivas-150217175042-conversion-gate02.pptx
diapositivas-150217175042-conversion-gate02.pptxdiapositivas-150217175042-conversion-gate02.pptx
diapositivas-150217175042-conversion-gate02.pptx
 
Recursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaRecursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y Busqueda
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Analisissss
AnalisissssAnalisissss
Analisissss
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Metodo de busqueda binario koby
Metodo de busqueda binario kobyMetodo de busqueda binario koby
Metodo de busqueda binario koby
 
Presentación1
Presentación1Presentación1
Presentación1
 
Listas en el lenguaje de programación Python
Listas en el lenguaje de programación PythonListas en el lenguaje de programación Python
Listas en el lenguaje de programación Python
 
metodos de busqueda
metodos de busquedametodos de busqueda
metodos de busqueda
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
2rias5me
2rias5me2rias5me
2rias5me
 
Grupo 1 Archivos Secuenciales Indexados en C++
Grupo 1 Archivos Secuenciales Indexados en C++Grupo 1 Archivos Secuenciales Indexados en C++
Grupo 1 Archivos Secuenciales Indexados en C++
 
Presentacion del proyecto archivos inexados
Presentacion del proyecto archivos inexadosPresentacion del proyecto archivos inexados
Presentacion del proyecto archivos inexados
 

Más de José Antonio Sandoval Acosta

Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 

Más de José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Último

Deilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybethAinellAlaaY
 
matematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccionmatematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccionalberto891871
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdfDavidHunucoAlbornoz
 
Mecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vaporMecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vaporalema3825
 
Energia primero de bachillerato, con trabajo
Energia primero de bachillerato, con trabajoEnergia primero de bachillerato, con trabajo
Energia primero de bachillerato, con trabajodenniscarrillo10
 
SISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdfSISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdfIvanIsraelPiaColina
 
El abecedario constituye el conjunto de grafías que son utilizadas para repre...
El abecedario constituye el conjunto de grafías que son utilizadas para repre...El abecedario constituye el conjunto de grafías que son utilizadas para repre...
El abecedario constituye el conjunto de grafías que son utilizadas para repre...MarjorieDeLeon12
 
Redes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaRedes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaanonimussecreto
 
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingErgonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingGonzalo141557
 
Presentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdfPresentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdflisCuenca
 
Instalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a pasoInstalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a pasosanjinesfreddygonzal
 
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxEXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxalejandroagarcia2336
 
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxINVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxssuserd2ff51
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxDianaSG6
 
MODULO DE MATEMATICAS BÁSICAS universidad UNAD.pdf
MODULO DE MATEMATICAS  BÁSICAS universidad UNAD.pdfMODULO DE MATEMATICAS  BÁSICAS universidad UNAD.pdf
MODULO DE MATEMATICAS BÁSICAS universidad UNAD.pdffrankysteven
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...FRANCISCOJUSTOSIERRA
 
Presentación PISC Préstamos ISC Final.pdf
Presentación PISC Préstamos ISC Final.pdfPresentación PISC Préstamos ISC Final.pdf
Presentación PISC Préstamos ISC Final.pdfEmanuelMuoz11
 

Último (20)

Deilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - Construcción
 
DESVIACION
DESVIACION DESVIACION
DESVIACION
 
matematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccionmatematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccion
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
 
Mecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vaporMecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vapor
 
Energia primero de bachillerato, con trabajo
Energia primero de bachillerato, con trabajoEnergia primero de bachillerato, con trabajo
Energia primero de bachillerato, con trabajo
 
SISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdfSISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdf
 
El abecedario constituye el conjunto de grafías que son utilizadas para repre...
El abecedario constituye el conjunto de grafías que son utilizadas para repre...El abecedario constituye el conjunto de grafías que son utilizadas para repre...
El abecedario constituye el conjunto de grafías que son utilizadas para repre...
 
Redes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaRedes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segunda
 
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingErgonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
 
Presentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdfPresentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdf
 
Tasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las CondesTasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las Condes
 
Instalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a pasoInstalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a paso
 
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxEXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
 
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxINVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
 
MODULO DE MATEMATICAS BÁSICAS universidad UNAD.pdf
MODULO DE MATEMATICAS  BÁSICAS universidad UNAD.pdfMODULO DE MATEMATICAS  BÁSICAS universidad UNAD.pdf
MODULO DE MATEMATICAS BÁSICAS universidad UNAD.pdf
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
 
Presentación PISC Préstamos ISC Final.pdf
Presentación PISC Préstamos ISC Final.pdfPresentación PISC Préstamos ISC Final.pdf
Presentación PISC Préstamos ISC Final.pdf
 
Litio en México y su uso en baterías
Litio en México y su uso en bateríasLitio en México y su uso en baterías
Litio en México y su uso en baterías
 

Estructura de Datos - Unidad 6 Metodos de busqueda

  • 1. Ingeniería en Sistemas Computacionales Estructura de Datos Unidad VI: Métodos de Búsqueda
  • 2. Competencia de la Unidad • Aplicar el método de búsqueda pertinente en la solución de un problema real. Temario
  • 3. INTRODUCCIÓN • Una de las funciones que con mayor frecuencia se utiliza en los sistemas de información, es el de las consultas a los datos, se hace necesario utilizar algoritmos, que permitan realizar búsquedas de forma rápida y eficiente. • La búsqueda, se puede decir que es la acción de recuperar datos o información, siendo una de las actividades que más aplicaciones tiene en los sistemas de información. • Más formalmente se puede definir como “La operación de búsqueda sobre una estructura de datos es aquella que permite localizar un nodo en particular si es que éste existe” (Euán, 1989).
  • 4. Clasificación de las Búsquedas •La llave es el campo por el cual se va a realizar la búsqueda. La búsqueda por comparación de llaves son algoritmos bastante sencillos, en estos se van comparando e las llaves. •En la transformación de llaves los algoritmos deben de ser mucho más analizados, ya que transforma las llaves por varios métodos, indicando en que posición del arreglo o del archivo se almacenan o se recuperan.
  • 5. Búsqueda Lineal o Secuencial
  • 6. BÚSQUEDA LINEAL O SECUENCIAL • Este tipo de búsqueda consiste en examinar, a partir del primer elemento y de uno en uno, hasta encontrar el dato buscado o bien llegar al final de la lista que puede estar almacenada en archivo o arreglo. • En este tipo de listas los elementos pueden o no estar ordenados, ya que se empieza a comparar de uno en uno los elementos de la lista y no importa su orden o lugar de ubicación para realizar la búsqueda, salvo para el tiempo de ejecución.
  • 7. • Si el elemento que se está buscando, se encuentra al inicio de la lista, este tiempo, sería muy corto, pero si se encuentra al final, va a tardar más y si el elemento que se desea buscar, no se encuentra en la lista, se hizo necesario, recorrer toda la lista, para darse cuenta que no está en ella. • Y si se le aumenta a esto, que el número de elementos en la lista puede ser del orden de cientos o miles, va a hacer mucho más tardado su ejecución. • Esta búsqueda tiene la ventaja de tener una fácil programación de su algoritmo.
  • 8. • Si el elemento que se está buscando, se encuentra al inicio de la lista, este tiempo, sería muy corto, pero si se encuentra al final, va a tardar más y si el elemento que se desea buscar, no se encuentra en la lista, se hizo necesario, recorrer toda la lista, para darse cuenta que no está en ella. • Y si se le aumenta a esto, que el número de elementos en la lista puede ser del orden de cientos o miles, va a hacer mucho más tardado su ejecución. • Esta búsqueda tiene la ventaja de tener una fácil programación de su algoritmo.
  • 9. ALGORITMO PARA BÚSQUEDA SECUENCIAL int x, i=0 bool bandera=false CAPTURAR x ABRIR (archivo) MIENTRAS no sea fin de archivo LEER REGISTRO (ARCHIVO) INCREMENTAR i SI llave = x entonces DESPLEGAR “Registro encontrado; ” DESPLEGAR “posición: ” i bandera=true FINSI FINMIENTRAS CERRAR (ARCHIVO) SI bandera = false DESPLEGAR “Registro no encontrado“ FINSI
  • 10. MANEJO DE ARCHIVOS DE TEXTO EN C++ • Para poder realizar el programa es necesario primero conocer las instrucciones y la lógica con la que se trabaja un archivo de texto. • Un archivo de texto contiene la información guardada sin ningún formato, en caso de requerirse un formato en particular, debe ser diseñado antes de guardar la información.
  • 11. INSTRUCCIONES PARA MANEJO DE ARCHIVOS DE TEXTO • <stdio.h>: esta librería contiene las instrucciones para el manejo de archivos ya sea de texto o binarios, por lo que es obligatorio incluirla en la cabecera del programa. • fopen(archivo, modo): esta función controla la apertura de un archivo, se requiere asignar el resultado a una variable apuntador de tipo FILE, la cual en caso de que el archivo no exista o por alguna razón no pueda ser abierto regresa NULL. Sintaxis: FILE *archivo; archivo=fopen(“c:alumnos.txt”, “w”); If (archivo==NULL) cout<<"El archivo no fue creado"
  • 12. MODOS DE APERTURA DE UN ARCHIVO
  • 13. • fputs(): Una vez que el archivo fue creado o abierto para agregar información, podemos hacer esta acción por medio de la instrucción fputs(). Sintaxis: fputs(char cadena, FILE archivo); Dónde: • Cadena: Es una variable tipo char. • Archivo: Es una variable tipo apuntador FILE, el archivo al que apunta debió ser abierto previamente.
  • 14. • fgets(): Los archivos también pueden ser leídos, es decir su información puede ser extraída y puesta en pantalla u otro medio de impresión por medio de la instrucción fgets(). Esta instrucción mueve el apuntador del archivo un registro por cada vez que se use. Sintaxis: fgets(char cadena, int longitud, FILE archivo); Dónde: • Cadena: Es una variable tipo char. • Longitud: Es la longitud máxima de la cadena a leer, en caso de que se encuentre un salto de línea o fin de archivo la lectura se detiene en ese punto. • Archivo: Es una variable apuntador de tipo FILE, el archivo al que apunta debió ser abierto previamente.
  • 15. COMPROBAR FINAL DE ARCHIVO • feof(archivo): Cada vez que se mueve el apuntador del archivo la función booleana feof(FILE archivo) puede ser usada, dicha función regresa true si el fin de archivo ya fue alcanzado y false si aún no se ha encontrado. Sintaxis: if (feof(archivo)) cout<<“No hay mas registros en el archivo”;
  • 16. CIERRE DE ARCHIVOS • fclose(archivo): Antes de cerrar nuestro programa una vez que terminamos de leer todos los registros, esto se hace con la instrucción fclose(archivo), el archivo al que apunta debió ser abierto previamente para que no regrese errores. • Es muy importante que esta instrucción sea utilizada ya que C++ libera la memoria y recursos utilizados para el archivo cuando encuentra esta instrucción. Además, mientras que no sea cerrado el archivo, el sistema operativo no lo libera, por lo que no puede ser modificado o eliminado vía COMMAND y/o Explorador de Windows.
  • 17. Ejercicio: • Realizar un programa que genere un archivo de texto con 500 llaves secuenciales aleatorias (no necesariamente estarán ordenadas). • Una vez que el archivo esté creado se debe capturar un número entero cualquiera y verificar si dicho número está contenido en el archivo utilizando el método de búsqueda secuencial. • Desplegar los mensajes correspondientes ya sea que se encontró la llave o que la búsqueda no fue exitosa. Nota: Debido a que las llaves en el archivo de texto se guardan en modo char, la verificación requiere que dichas llaves sean convertidas a tipo int para poder realizar comparaciones.
  • 18. Trabajando con Búsquedas Secuenciales en Archivos de Texto Variables globales Módulo main
  • 22. BÚSQUEDA BINARIA • La búsqueda Binaria o por Bisección no representa mucha dificultad para la programación de su algoritmo y además, es muy rápida su ejecución. • Este algoritmo requiere que los elementos de la lista sobre la que va a actuar sean ordenados previamente, ya sea en forma ascendente o descendente, cada elemento de la lista puede tener varios campos. La lista se considera que empieza a almacenar sus elementos en la posición cero. • Va a utilizarse tres apuntadores, uno en la primera posición de la lista que se le denominara LI, para efectos de la explicación, otro en la última conocido como LS y el que apunte en la parte central, el cual se obtiene de la suma de LS mas LI entre dos (LI + LS/ 2) y tomando la parte entera, el cual se le llamará M.
  • 23. A diferencia de la Búsqueda Secuencial, aquí el número de comparaciones no se comporta en forma lineal, ya que procede a realizar los siguientes pasos: • Dividir la lista en dos partes, al determinar el elemento central de dicha lista, con lo que se iniciará el apuntador M. • Comparar el valor del elemento buscado con el central. • Si resultan ser iguales, las búsquedas termina con éxito, indicando en qué posición se encontró y cuáles son los datos que están en esa posición. • En el caso de no ser iguales, se redefinen la posición de alguno de los apuntadores de los extremos (LI o LS), dependiendo del valor del elemento central, sea mayor o menor que el buscado.
  • 24. • Ejemplo: se cuenta con un arreglo ordenado de 8 posiciones, se desea buscar la ubicación del número 17. Aplicar el método de búsqueda binario. Asignamos posiciones a LI, LS y M LI=0; LS=tamaño-1  LS=7; M=(0+7)/2  M=3; LI=0 LS=7M=3 Comparamos si el número buscado es igual al valor en la posición M, de ser así el proceso termina; SINO Si el número en la posición M es menor LS=M-1; SINO Si el número en la posición M es mayor LI=M+1 El número 17 es mayor, LI=4; Se repite el proceso
  • 25. • Tomamos el arreglo completo y reasignamos posiciones a los límites Asignamos posiciones LI, LS y M LI=4; LS=7; M=(4+7)/2  M=5; LI=4 LS=7M=5 Comparamos si el número buscado es igual al valor en la posición M, de ser así el proceso termina; SINO Si el número en la posición M es menor LS=M-1; SINO Si el número en la posición M es mayor LI=M+1 El número 17 es mayor, LI=6; Se repite el proceso
  • 26. • Tomamos el arreglo completo y reasignamos posiciones a los límites Asignamos posiciones a LI, LS y M LI=6; LS=7; M=(6+7)/2  M=6; LI=6 LS=7 M=6 Comparamos si el número buscado es igual al valor en la posición M, de ser así el proceso termina;
  • 27. CODIFICACIÓN DE BÚSQUEDA BINARIA EN C++ USANDO ARREGLOS  Variables globales  Módulo main
  • 28.  Módulo de Búsqueda Binaria
  • 29. • Ejercicio: Realice la programación del método de búsqueda binaria usando arreglos y basándose en el código visto en clase. • Entregar el programa ya funcionando y probado.
  • 30. TRANSFORMACIÓN DE LLAVES O TABLAS DE HASH
  • 31. BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE CLAVES (HASHING) • Es un método de búsqueda que aumenta la velocidad de búsqueda, pero que no requiere que los elementos estén ordenados. • Consiste en asignar a cada elemento un índice mediante una transformación del elemento. Esta correspondencia se realiza mediante una función de conversión, llamada función hash. • La correspondencia más sencilla es la identidad, esto es, al número 0 se le asigna el índice 0, al elemento 1 el índice 1, y así sucesivamente. • Pero si los números a almacenar son demasiado grandes esta función es inservible.
  • 32. • Por ejemplo, se quiere guardar en un array la información de los 1000 usuarios de una empresa, y se elige el número llave como elemento identificador. • Es inviable hacer un array de 100.000.000 elementos, sobre todo porque se desaprovecha demasiado espacio. • Por eso, se realiza una transformación al número de llave para que nos de un número menor, por ejemplo coger las 3 últimas cifras para guardar a los empleados en un array de 1000 elementos. • Para buscar a uno de ellos, bastaría con realizar la transformación a su DNI y ver si está o no en el array. • La función de hash ideal debería ser biyectiva, esto es, que a cada elemento le corresponda un índice, y que a cada índice le corresponda un elemento, pero no siempre es fácil encontrar esa función, e incluso a veces es inútil, ya que puedes no saber el número de elementos a almacenar.
  • 33. • Restas sucesivas: esta función se emplea con claves numéricas entre las que existen huecos de tamaño conocido, obteniéndose direcciones consecutivas. • Por ejemplo, si el número de expediente de un alumno universitario está formado por el año de entrada en la universidad, seguido de un número identificativo de tres cifras, y suponiendo que entran un máximo de 1000 alumnos al año, se le asignarían las claves: Clave 1998-000  0 = 1998000-1998000; el consecutivo es 000 Clave 1998-457  457 = 1998457-1998000; el consecutivo es 457 Clave 1998-970  970 = 1998970-1998000; el consecutivo es 970
  • 34. Tarea: Existen otras formas de determinar la posición de la clave en el arreglo, como lo son las siguientes: • Aritmética modular • Mitad del cuadrado • Truncamiento • Plegamiento • Tratamiento de colisiones Investigar sobre los métodos mencionados arriba y entregar resumen escrito
  • 35. TRABAJANDO CON TABLAS HASH CON EL MÉTODO DE RESTAS SUCESIVAS • Una tabla hash está compuesta por al menos dos elementos que forman una pareja, la llave, y la información que contiene relacionada. • Una función hash es método para generar claves o llaves que representen de manera casi única a un documento o conjunto de datos. Es una operación matemática que se realiza sobre este conjunto de datos de cualquier longitud, y su salida es una huella digital, de tamaño fijo e independiente de la dimensión del conjunto de datos originales. • La tabla hash usa una función de dispersión para colocar los elementos, de forma que no se pueden recorrer secuencialmente, pero a cambio el acceso a partir de la clave es muy rápido, más que si hacemos una búsqueda secuencial o binaria.
  • 36. Ejercicio: • Realice un programa utilizando Tablas Hash y el método de Restas Sucesivas. Dicho programa debe capturar llave y nombre del estudiante. • Se tomará como base para generar la llave el año 2016 y el máximo de alumnos a capturar es de 1000 (desde consecutivo 000 al consecutivo 999). • El programa debe permitir, Insertar, Eliminar, Verificar Posición, y Realizar Recorrido del arreglo que contiene la información.
  • 38. MÓDULO PARA CALCULAR POSICION EN LA TABLA HASH MÓDULO PARA RECORRAR LA TABLA HASH
  • 39. MÓDULO PARA INSERTAR EN LA TABLA HASH MÓDULO PARA ELIMINAR EN LA TABLA HASH
  • 41. Bibliografía • Joyanes, Zahonero. Estructura de Datos en C++. McGraw Hill. Madrid, España. 2007. ISBN: 978-84-481-5645-9. • EUÁN AVILA JORGE IVAN Y CORDERO BORBOA LUIS GONZAGA., Estructuras de datos, (1ª reimpresión.), MÉXICO, LIMUSA, tomada de la primera edición de la UNAM (FACULTAD DE INGENIERÍA), 1989.