ALGORITMO Y ESTRUCTURA DE DATOS II UNIDAD 3 ORDENAMIENTO Y BUSQUEDA MARCOS RODRIGUEZ /4/2019ALGORITMO Y ESTRUCTURA DE DATOS II 1 Prof.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURA DE DATOS Unidad 05 ALGORITMOS DE BUSQUEDA.
Advertisements

TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.
PROGRAMACION DE ESTRUCTURAS DE DATOS
Teoría de lenguajes y compiladores
Material de apoyo Unidad 8 Estructura de datos
Luis Fernando Flores Cogque Lucia Guadalupe Hernández Quixtiano
TEMA 5 ORDENACION, BUSQUEDA, MODIFICACION, BUSQUEDA HASH.
Búsqueda. Búsqueda Secuencial Es el método de búsqueda más sencillo En un arreglo o lista ligada consiste en ir visitando cada uno de sus elementos y.
Algoritmos de búsqueda
Métodos de búsqueda Unidad 6.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Tablas de Hash.
(Organización y Manejo de Archivos)
Ingeniería en Sistemas Computacionales Estructura de Datos
Administración de Memoria
Aplicación de estructuras de datos
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Análisis y Diseño de Algoritmos
Ordenación El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente.
Teoría de Sistemas Operativos Administración de Archivos.
1 Tablas HASH Agustín J. González ELO320: Estructura de Datos y Algoritmos.
1. 2 Problema Telemóviles, una gran companía de telefonía, requiere mejorar la capacidad de identificación del usuario que llama: –dado un número de usuario,
Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León

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.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
Presentado por: Yuli Dominguez. Portal Educa Panamá. Sistema de numeración.
Búsqueda binaria Integrantes: Humberto Raíz Walter Gómez Isabel Hernández.
Unidad 3: Eficiencia de Algoritmos Tema V: Búsqueda. Búsqueda. Búsqueda Lineal. Búsqueda binaria. Búsqueda Máximos y Mínimos. Análisis de los algoritmos.
Búsqueda Binaria Castillo Soria Luis Fernando Méndez Tinajero Armando Pérez Ramos Susana.
1 Ordenación, Clasificación Introducción Algoritmos Complejidad.
SISTEMAS NUMERICOS ING. SUSANA BELTRAN.
Métodos de compresión sin pérdida de información
MODULO III ARREGLOS Y CLUSTERS.
Estructuras de Control en Visual Basic.net
Universidad Autónoma del Estado de México
Ciclos condicionales y exactos Estructura de control de ciclos
Tema 4 Elementos para el Desarrollo de Algoritmos
Complejidad Programación II de febrero de 2009.
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Qu é define el Plan Maestro de Producci ó n - MPS?
CAPÍTULO 5: SEGMENTACIÓN Y TRATAMIENTO DE IMÁGENES BINARIAS
una solución. Los algoritmos son objeto de estudio de la algoritmia.
Fotografía II º Medio Encuadre y Composición
Hipervínculos scratch
CIRCUITOS SECUENCIALES
RAICES H.L.M. ¿Qué es una Raíz? La Definición de Raíz como Potencia Raíz Cuadrada Raíz Cúbica El Indice Igual al Exponente Multiplicación de Raíces de.
Métodos de búsqueda. Introdución Esta operación se utiliza basicamente para recuperar datos que se habian almacenado con anticipación. El resultado puede.
Sistemas de numeración y Representación de la Información Tema 2.
1 Tablas HASH Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem
Prof. Pedro Quiroz G..
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Método de ordenamiento SHELL Aparicio Pérez Antonio Habacuc Domínguez Hernández Jonathan Gallegos Matinés Josué Roberto Rincón Solís Adriana Elizabeth.
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Sistema Fotovoltaico e Instalación
Método de Ordenamiento por Inserción. El método recorrer el Vector de Izquierda a Derecha, tomando la posición Actual y Comparándola con su Izquierda.
Ordenación externa: Partición de archivos, Ordenación por mezcla directa y Ordenación por mezcla natural LINNY ROSMERY ABREU VARGAS.
Algoritmos de caminos más cortos
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
1 Tablas HASH Agustín J. González ELO320: Estructura de Datos y Algoritmos.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
ORDENAMIENTO POR EL MÉTODO DEL SHAKER SORT (SACUDIDA)
UNIDAD VI ARREGLO UNIDIMENSIONAL
Estrategia algorítmica
UNIVERSIDAD AÚTONOMA DE SINALOA “Facultad de Informática Culiacán”
UNIVERSIDAD Autónoma DE SINALOA
Transcripción de la presentación:

ALGORITMO Y ESTRUCTURA DE DATOS II UNIDAD 3 ORDENAMIENTO Y BUSQUEDA MARCOS RODRIGUEZ /4/2019ALGORITMO Y ESTRUCTURA DE DATOS II 1 Prof. Edwin Lopez

ALGORITMO Y ESTRUCTURA DE DATOS II UNIDAD 3 ORDENAMIENTO Y BUSQUEDA 3.5 Mezcla directa (Intercalación) 3.6 Mezcla natural (Intercalación) 3.7 Busqueda secuencial 3.8 Busqueda binaria 3.9 Busqueda hash 8/4/2019 ALGORITMO Y ESTRUCTURA DE DATOS II 2 MARCOS RODRIGUEZ

Ordenación externa Mezcla directa (Intercalación) Mezcla natural (Intercalación) Metodos de busqueda Busqueda secuencial Busqueda bicotómica (binaria) Busqueda hash 8/4/ UNIDAD 3 ORDENAMIENTO Y BUSQUEDA ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

La idea central de este algoritmo consiste en realizar de forma sucesiva una partición y una fusión que produce secuencias ordenadas de longitud cada vez mayor. En la primera pasada la partición es de longitud 1 y la fusión produce secuencias ordenadas de longitud 2. En la segunda pasada la partición es de longitud 2 y la fusión produce secuencias ordenadas de longitud 4. Este proceso se repite hasta que la longitud de la partición sea menor o igual al número de elementos del archivo original. Ejemplo. Considere el archivo F con los elementos 324, 230, 942, 700, 714, 139, 6, 915, 890 y 717, y los archivos auxiliares F1 y F2. El proceso de ordenamiento según la descripción del algoritmo anterior seria: 8/4/ Mezcla directa (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

F: 324, 230, 942, 700, 714, 139, 6, 915, 890, 717 T. Partición: 1 Partición: Se construye tomando un número para cada una de las particiones F1: 324, 942, 714, 6, 890 F2: 230, 700, 139, 915, 717 Fusión: Se fusionan las dos particiones comparando el menor de la partición va primero F: 230, 324, 700, 942, 139, 714, 6, 915, 717, 890 T. Partición: 2 Partición: Se construye tomando dos números para cada una de las particiones F1: 230, 324, 139, 714, 717, 890 F2: 700, 942, 6, 915 8/4/ Mezcla directa (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Partición: //parte repetida F1: 230, 324, 139, 714, 717, 890 F2: 700, 942, 6, 915 Fusión: F: 230, 324, 700, 942, 6, 139, 714, 915, 717, 890 T. Partición: 4 Partición: F1: 230, 324, 700, 942, 717, 890 F2: 6, 139, 714, 915 8/4/ Mezcla directa (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Fusión: F: 6, 139, 230, 324, 700, 714, 915, 942, 717, 890 T. Partición: 8 Partición: F1: 6, 139, 230, 324, 700, 714, 915, 942 F2: 717, 890 Fusión F: 6, 139, 230, 324, 700, 714, 717, 890, 915, 942 8/4/ Mezcla directa (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

La idea central de este algoritmo consiste en realizar particiones tomando secuencias ordenadas de máxima longitud en lugar de secuencias ordenadas de tamaño fijo previamente determinadas, como la intercalación directa. Posteriormente se realiza la fusión de esas secuencias ordenadas, alternándolas entre los dos archivos auxiliares. Repitiendo este proceso, se logra que el archivo quede completamente ordenado. Para aplicar este algoritmo, se necesitarán cuatro archivos. El archivo original y tres archivos auxiliares. De estos cuatro archivos, dos serán considerados de entrada y dos de salida, alternativamente en cada paso del algoritmo. El proceso termina cuando al finalizar un paso, el segundo archivo de salida quede vacío y el primero queda completamente ordenado. Ejemplo. Considere el archivo F con los elementos 324, 230, 942, 700, 714, 139, 6, 915, 890 y 717, y los archivos auxiliares F1, F2 y F3. El proceso de ordenamiento según el algoritmo anterior seria: 8/4/ Mezcla natural (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

F: 324, 230, 942, 700, 714, 139, 6, 915, 890, 717 Partición inicial F1: 324, 700, 714, 6, 915, 717 F2: 230, 942, 139, 890 Fusión-Partición F: 230, 324, 700, 714, 942 F3: 6, 139, 890, 915, 717 8/4/ Mezcla natural (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Fusión-Partición F1: 6, 139, 230, 324, 700, 714, 890, 915, 942 F2: 717 Fusión-Partición F: 6, 139, 230, 324, 700, 714, 717, 890, 915, 942 F3: (sin elementos) 8/4/ Mezcla natural (Intercalación) ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Consiste en buscar el elemento comparándolo secuencialmente (de ahí su nombre) con cada elemento del arreglo hasta encontrarlo, o hasta que se llegue al final. 8/4/ Busqueda secuencial ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Se utiliza cuando el vector en el que queremos determinar la existencia de un elemento está previamente ordenado. Este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye exponencialmente el número de iteraciones necesarias. Está altamente recomendado para buscar en arrays de gran tamaño. Por ejemplo, en uno conteniendo elementos, realiza como máximo 26 comparaciones (en el peor de los casos). 8/4/ Busqueda binaria ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

8/4/ ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

8/4/ Busqueda binaria ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

Existe un método que puede aumentar la velocidad de búsqueda donde los datos no necesitan estar ordenados y esencialmente es independiente del número n. Este método se conoce como transformación de claves o hashing. El hashing consiste en convertir el elemento almacenado (numérico o alfanumérico) en una dirección (índice) dentro del array. Funciones Hash más usadas: 1. Hash de División: Dado un diccionario D, se fija un número m >= |D| (m mayor o igual al tamaño del diccionario) y que sea primo no cercano a potencia de 2 o de 10. Siendo k la clave a buscar y h(k) la función hash, se tiene h(k)=k%m (Resto de la división k/m). 8/4/ Busqueda hash ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ

2. Hash de Multiplicación Si por alguna razón, se necesita una tabla hash con tantos elementos o punteros como una potencia de 2 o de 10, será mejor usar una función hash de multiplicación, independiente del tamaño de la tabla. Se escoge un tamaño de tabla m >= |D| (m mayor o igual al tamaño del diccionario) y un cierto número irracional φ (normalmente se usa 1+5^(1/2)/2 o 1-5^(1/2)/2). De este modo se define h(k)= Suelo(m*Parte fraccionaria(k*φ)) 8/4/ Busqueda hash ALGORITMO Y ESTRUCTURA DE DATOS IIMARCOS RODRIGUEZ