Montículos Daniel González Pérez Cristina Sánchez Aragón

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
50 formas de decir “Te Amo”.
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 5.- 1ª PARTE. EL A.O. Y SUS APLICACIONES
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
1 Ahora hay una luz muy brillante.. 2 Ahora/ hay/ una luz muy brillante.
IBD Clase 7.
Álgebra 2010 Clase N° 1 Conjuntos numéricos I
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
CLASE 3 SOFTWARE DEL MICROPROCESADOR
5 pt 5 pt 5 pt 5 pt 5 pt 10 pt 10 pt 10 pt 10 pt 10 pt 15 pt 15 pt
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281. C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281 1-Ingrese a menú 2-Ingrese a Mensajes 3-Ingrese a Correo 4-Seleccione.
1. Apoyo exterior sobre ala inferior de viga de acero
Banco Río, siempre pensando en su comodidad, ha diseñado el Cajero Auto Bank, para servirlo cómodamente a su auto, así, apreciado cliente, tiene la posibilidad.
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
-17 Expectativas sobre la situación económica (Europa) Septiembre 2013 Indicador > +20 Indicador 0 a +20 Indicador 0 a -20 Indicador < -20 Total Unión.
Phone2Wave-Server Manual de Operación.
Repaso del capítulo Primer Paso
50 principios La Agenda 1.- Presentar un único interlocutor a los clientes. 2.- Tratar de modo distinto a las diferentes clases de clientes. 3.- Saber.
Parte 3. Descripción del código de una función 1.
INFORME USDA NOVIEMBRE TRIGO 2 MERCADO INTERNACIONAL (Millones de Toneladas) 3.
AÑO DE JUBILEO Levítico 25:8-22.
FUNCIONES DE UNA VARIABLE REAL
Calendario 2008 Imágenes variadas Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2008.
EL OSO APRENDIZ Y SUS AMIGOS
Las NIC MARCO CONCEPTUAL NIC 1: PRESENTACIÓN ESTADOS FINANCIEROS
1 SEGUNDO FORO REGIONAL HERMOSILLO, SON Sistema Nacional de Transparencia Fiscalización y Rendición de Cuentas:
50 principios 1. Los clientes asumen el mando.
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt El vocabulario.
Ecuaciones Cuadráticas
3 Enero 2010 PERÚ: IV CENSO NACIONAL ECONÓMICO, APURÍMAC.
RAZONAMIENTO MATEMATICO Mg. CORNELIO GONZALES TORRES
¡Primero mira fijo a la bruja!
ESTRUCTURAS DE DATOS AVANZADAS
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
El Uso de las Redes Sociales Prof. Ayleen Martínez Ramos Presidenta de APEC
CULENDARIO 2007 Para los Patanes.
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
BEATRIZ LAFONT VILLODRE
¿Quién? ¿Qué? ¿Dónde? ¿Cuándo? ¿Cómo? ¿Por qué?
REGLAS DE LOS SIGNOS.
* Fuente: Sondeo del Consumidor de la Comisión de la UE, GfK. Expectativas sobre la situación.
MSc. Lucía Osuna Wendehake
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
“Modelo utópico para hacer feliz a una mujer” Miguel-A.
SUCESIONES Y PROGRESIONES.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Estructuras de control
Manual de Procedimientos Procedimiento de ejecución del programa de
Indicaciones: 1.- Tener en cuenta que esta estrategia, solo funciona asociando las cuentas los días lunes. 2.- Los cálculos son aproximados con un margen.
Herramienta FRAX Expositor: Boris Inturias.
CHAPTER 4 VOCABULARY: PART II
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Transcripción de la presentación:

Montículos Daniel González Pérez Cristina Sánchez Aragón Miguel Ángel Moreno Leiva

Índice ¿Qué son los montículos? Especificación Implementación Colas de prioridad con montículos Otros tipos de montículos Mont. Binarios Mont. Binomiales Mont. Fibonacci

1. ¿Qué son los montículos? Un heap o montículo es un árbol binario completo, y además parcialmente ordenado. Completo: que tiene todos sus niveles completos a excepción del último. Y el último nivel contiene los nodos agrupados de izquierda a derecha Parcialmente ordenado: tiene todas y cada una de sus ramas, consideradas como listas, totalmente ordenadas, ya sea de forma creciente o decreciente

1. ¿Qué son los montículos? Completo:

1. ¿Qué son los montículos? Parcialmente Ordenado:

Operaciones: 2. Especificación Vacio: Devuelve el montículo vacío. Inserta x m: Devuelve un montículo añadiendo el elemento x en el montículo m. Menor m: Devuelve el menor elemento del montículo m. Resto m: Devuelve el montículo resultante de eliminar el menor elemento del montículo m. esVacio m: Devuelve verdadero si el montículo m es vacío. Valido m: Devuelve verdadero si m es un montículo correcto y cumple sus propiedades.

3. Implementación

3. Implementación

3. Implementación

3. Implementación

3. Implementación

3. Implementación Si es mayor permutamos hasta llegar a la raíz Pasos para insertar en un Heap Agregamos el nodo. (de izquierda a derecha) Comparamos son su padre. Si es mayor permutamos hasta llegar a la raíz Repetimos el paso 1 y 2 hasta llenar el nivel. Una vez llenado ese nivel pasamos al siguiente nivel.

=> => => Inserta (Ejemplo) Agregamos el 19 Agregamos el 24 14 24 19 Comparamos el 24 > 19 Comparamos el 14 > 24 Agregamos el 30 30 24 24 => => 24 14 19 14 30 14 19 30 19 Comparamos el 30 > 19 Comparamos el 30 > 24

=> => Inserta (Ejemplo) Agregamos el 25 Agregamos el 18 30 30 30 24 14 25 14 25 14 19 25 19 24 19 24 18 Comparamos el 25 > 24 Agregamos el 5 Comparamos el 18 > 14 30 30 25 18 => 25 18 19 24 14 19 24 5 14

3. Implementación Pasos para eliminar Eliminamos la raíz del heap (SIEMPRE!!) Una vez eliminada remplazamos la raíz con el último nodo del último nivel. Comparamos si los hijos de la nueva raíz son menores Si son menores no se hace ninguna permutación Si son mayores (o uno de ellos) se hace permutación con el hijo mayor. Repetimos los pasos anteriores hasta no tener nodos para eliminar.

=> => => Resto (Ejemplo) Eliminamos el 30 Comparamos si el 5 > 25 30 5 => 25 24 25 24 19 14 5 18 19 14 18 Comparamos si el 5 > 19 25 25 => => 5 24 24 19 19 14 5 18 14 18

=> => => Resto ( Ejemplo) Eliminamos el 25 Comparamos si el 24 > 19 Y si el 24 >18 24 25 18 => 18 24 19 19 24 19 5 5 14 14 18 5 14 Comparamos si el 14 > 19 Comparamos si el 14 > 5 Eliminamos el 24 24 19 14 => => 18 18 18 14 19 19 5 5 14 5

=> => => => Resto (Ejemplo) Eliminamos 19 Comparamos si el 5 > 14 Comparamos si el 14 > 18 19 => 5 => 5 18 14 18 14 18 14 5 Eliminamos 18 18 5 => 18 14 => 5 14 5 14 14 5

=> => Resto (Ejemplo) Los nodos eliminados fueron: Eliminamos 14 Eliminamos 5 14 => => 5 5 vació 5 Los nodos eliminados fueron: 30 25 24 19 18 14 5

3. Implementación

3. Implementación

3. Implementación

3. Implementación

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

4. Otras Operaciones Auxiliares

5. Colas de Prioridad Cada elemento tiene asociada una prioridad y la operación de extracción siempre elige el elemento de menor prioridad. (Ciudades ordenadas por su distancia a un destino final) Son necesarios dos procedimientos: para insertar elementos al final y extraer el primer elemento. Insertar al final de la cola, el elemento se añade al final del montículo como la última hoja. El restablecimiento de la propiedad de montículo en el caso de la inserción de elementos al final de una cola se logra al moverse desde la última hoja hacia la raíz. La extracción del primer elemento del montículo consiste en eliminar el elemento de la raíz del montículo debido a que por la propiedad del montículo éste es el elemento con mayor prioridad. Luego la última hoja se pone en su lugar y es casi seguro que la propiedad del montículo tenga que restablecerse, esta vez al avanzar desde la raíz hacia abajo del árbol.

5. Colas de Prioridad Aquí falta la Implementación de las colas

6. Tipos de Montículos Montículos Binarios Montículos Binomiales Montículos de Fibonacci

6.1 Montículos Binarios Consiste en la representación de un montículo como un vector

6.1 Montículos Binarios

6.2 Montículos Binomiales Los montículos binomiales están formados por una colección de árboles binomiales los cuales se definen recursivamente de la siguiente forma: El árbol B₀ es el que tiene un solo elemento. Un árbol Bk consiste en dos árboles Bk₋₁ que están unidos, siendo la raíz de uno el hijo más a la izquierda de la raíz del otro.

6.2 Montículos Binomiales Es un conjunto de árboles binomiales tales que: Cada árbol binomial es un árbol parcialmente ordenado, es decir, la clave de todo nodo es mayor o igual que la de su padre. Contiene no más de un árbol binomial Bi para cada grado i

6.2 Montículos Binomiales Ejemplo de Montículo Binomial de 13 Nodos: La representación binaria de 13 es〈1, 1, 0, 1〉, por tanto M contiene los árboles binomiales B3, B2 y B0, con 8, 4 y 1 nodos, respectivamente

6.3 Montículos de Fibbonacci Los montículos de Fibonnacci consisten en una colección de árboles. Los árboles no están ordenados como sucede con los montículos binomiales, pero si están enlazados las raíces. Cada nodo contiene: Un encadenamiento al nodo padre. Un encadenamiento al nodo de uno de sus hijos. Un encadenamiento circular a sus hermanos hacia la derecha. Un encadenamiento circular a sus hermanos hacia la izquierda.

6.3 Montículos de Fibbonacci En el caso de que el nodo no tenga hermanos se encadena hacia sí mismo. Además cada nodo tiene dos parámetros: El número de hijos de la lista de hijos. Una marca indicando si un nodo determinado ha perdido un hijo desde la última vez que fue asignado hijo de otro nodo.

6.3 Montículos de Fibbonacci

6.3 Montículos de Fibbonacci Comparado con los montículos binomiales, la estructura de un montículo de Fibonacci es más flexible. Los árboles no tienen una forma predefinida y en un caso extremo el montículo puede tener cada elemento en un árbol separado o en un único árbol de profundidad n. Esta flexibilidad permite que algunas operaciones puedan ser ejecutadas de una manera 'perezosa', posponiendo el trabajo para operaciones posteriores.

7. Comparativa de Rendimiento Dependiendo del tipo de montículo, podemos que cada operación tiene una complejidad:

8. Ventajas de la Programación Funcional Brevedad Facilidad para comprender Manejo de los tipos de datos Reutilización de código y polimorfismo Evaluación perezosa y programas modulares Abstracciones poderosas y funciones como valores de primera clase

Bibliografía