PROGRAMACION DE ESTRUCTURAS DE DATOS

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

IBD Clase 7.
Unidad 8 Métodos de Búsqueda
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Ordenamiento Interno y Búsqueda Binaria
Método para resolver colisiones
Estructuras de Datos (ARRAYS)
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
MANEJO DE ARRAYS EN C.
Prof. Ramón Garduño Juárez Modelado Molecular Diseño de Fármacos
MÉTODOS DE CLASIFICACION
Programación (Estructura de Datos)
Programación (Estructura de Datos)
PROGRAMACION DE ESTRUCTURAS DE DATOS IV. MÉTODOS DE ORDENAMIENTO.
III. DISEÑO DE ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Algoritmos Aleatorizados
Implementación de archivos
Windows XP sp3.
Teoría de lenguajes y compiladores
Arreglos Ing. Nahiby Castillo.
ORGANIZACIÓN RELATIVA ACCESO DIRECTO
Unidad 3 Punteros.
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Ordenación, Clasificación
Material de apoyo Unidad 8 Estructura de datos
ESTRUCTURAS DE CONTROL
Universidad de los Andes-CODENSA
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
7.  El TDA Diccionario.
Índice. Revisando conceptos acerca de la memoria.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructuras de Datos Arreglos.
Clase 10: Estructuras de datos y arreglos.
Algoritmos de búsqueda
BUSQUEDA SECUENCIAL Consiste en revisar elemento tras elemento hasta encontrar el dato buscado, o llegar al final del conjunto de datos disponibles. La.
Métodos de búsqueda Unidad 6.
Elaborado por: Guillermo Baquerizo I Término
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Tablas de Hash.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Administración de Memoria
Aplicación de estructuras de datos
Ordenación y Búsqueda.
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Análisis y Diseño de Algoritmos
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Ordenamiento en lenguaje c
Teoría de lenguajes y compiladores
Fundamentos de Programación
Introducción a los TADs
Computación I. CI-2125 Tema VII
PROGRAMACION DE Pilas o Stacks
MIA - Grupo 5 Unidad 2.
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández

Conversiones Sistemas decimal - binario - octal - hexadecimal
MEMORIA DINÁMICA.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
José Luis Vergara Soberanis..   Una tabla hash requiere mucho menos espacio de almacenamiento si el conjunto K es mucho menos pequeño que el universo.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

PROGRAMACION DE ESTRUCTURAS DE DATOS UNIVERSIDAD LATINA PROGRAMACION DE ESTRUCTURAS DE DATOS V. MÉTODOS DE BUSQUEDA. EI, Profesor Ramón Castro Liceaga

QUE ES UNA BÚSQUEDA ? La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado. Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.

QUE ES UNA BÚSQUEDA SECUENCIAL ? La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último.

Pseudocódigo Búsqueda Secuencial: 1.- Llenar la matriz con n elementos 2.- Mostrar los elementos 3.- Pedir el valor a buscar 4.- Iniciar el ciclo que recorre la matriz Si el valor de la matriz = a buscar - muestra el valor y su posición - salir del ciclo Fin_ciclo 5.- Si no hay elementos y no encontró el valor buscado Mandar el mensaje Programa: BuscaEnMatriz.cpp Busca un valor en una matriz de 50 números aleatorios

QUE ES UNA BÚSQUEDA BINARIA ? La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

Pseudocódigo BusquedaBinaria (con ordenamiento de la burbuja): 1.- Inicio 2.- Declarar las siguientes funciones (prototipos) ingresar.- obtener el numero que se desea busca Ordenar.- ordena por el método de burbuja Mostrar- muestra en pantalla el contenido de la matriz Buscar.- ejecuta el algoritmo de búsqueda binaria Mensaje.- presenta el mensaje inicial 3.- Declarar variables y matriz de 100 elementos 4.- Mostrar mensaje de bienvenida 5.- Inicializar el generador de números aleatoreos 6.- Mostrar la matriz generada 7.- Ordenar la matriz por el método de burbuja 8.- Ingresar el numero a buscar en la matríz 9.- Buscar el número en la matriz Si lo encuentra mostrar posición y valor (recursivo) Si no lo encuentra mostrar mensaje. 10.- Termina

BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE LLAVES (Hashing) En este método se requiere que los elementos estén ordenados. (arreglos, archivos o Bases de Datos) El método consiste en asignar el índice a cada elemento mediante una transformación del elemento, esto se hace mediante una función de conversión (hash) La principal forma de transformar el elemento es asignarlo directamente, es decir al 0 le corresponde el índice 0, al 1 el 1, y así sucesivamente pero cuando los elementos son muy grandes se desperdicia mucho espacio ya que necesitamos arreglo grandes para almacenarlos y estos quedan con muchos espacios libres, para utilizar mejor el espacio se utilizan funciones mas complejas.

BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE LLAVES (Función Hash) 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. Esta función hash debe ser simple de calcular y debe asignar direcciones de la manera más uniformemente posible, es decir debe generar posiciones diferentes dadas dos claves diferentes. La función de hash depende de cada problema y de cada finalidad, y se pueden utilizar con números o cadenas, pero las más utilizadas son:

BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE LLAVES (Función Hash) Restas sucesivas: Esta función se emplea con claves numéricas entre las que existen huecos de tamaño conocido, obteniéndose direcciones consecutivas. Aritmética modular: El índice de un número es resto de la división de ese número entre un número N prefijado, preferentemente primo. Los números se guardarán en las direcciones de memoria de 0 a N-1. Colisión: Hay una colisión que se define como la asignación de una misma dirección a dos o mas claves diferentes

BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE LLAVES (Resolución de colisiones) Hay diferentes maneras de solucionarlas pero lo más efectivo es en vez de crear un arreglo de número, crear un arreglo de apuntadores, donde cada apuntador señala el principio de una lista enlazada. Así, cada elemento que llega a un determinado índice se pone en el último lugar de la lista de ese índice. El tiempo de búsqueda se reduce considerablemente, y no hace falta poner restricciones al tamaño del arreglo, ya que se pueden añadir nodos dinámicamente a la lista.

BÚSQUEDA MEDIANTE TRANSFORMACIÓN DE LLAVES (Prueba) Ejemplo: Si la posición 397 ya estaba ocupada, el registro con clave 0596397 es colocado en la posición 398, la cual se encuentra disponible. Una vez que el registro ha sido insertado en esta posición, otro registro que genere la posición 397 o la 398 es insertado en la posición siguiente disponible.

GRACIAS…