Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Ríos Suárez Modificado hace 10 años
1
1 Colas de Prioridad El TDA cola de prioridad Implementación de una cola de prioridad con una secuencia Ordenamiento elemental Asuntos en ordenamiento
2
2 Llaves y Relaciones de Orden Total Una Cola de Prioridad clasifica sus elementos por la key con una relación de orden total Llaves:Cada elemento tiene su propia llave Las llaves no son necesariamente únicas Relación de Orden Total, indicado por Reflexiva: k k Antisimetria: si k1 k2 y k2 k1, entonces k1 k2 Transitiva: si k1 k2 y k2 k3, entonces k1 k3 Una Cola de Prioridad soporta estos métodos fundamentales sobre pares de elementos llave: min() insertItem(k, e) removeMin()
3
3 Ordenación con una Cola de Prioridad Una Cola de Prioridad P se puede usar para ordenar una secuencia S mediante: –insertando los elementos de S en P con una serie de operaciones insertItem(e, e) –extrayendo los elementos de P en orden creciente y colocandolos nuevamente en S con una serie de operaciones removeMin() Algorithm PriorityQueueSort(S, P): Input: Secuencia S con n elements, y una cola de prioridad P Output: Secuencia S ordenada por una relación de orden total while !S.isEmpty() do e S.removeFirst() P.insertItem(e, e) while P is not empty do e P.removeMin() S.insertLast(e)
4
4 TDA para Cola de Prioridad Una cola de prioridad P soporta los siguientes métodos: -size(): Devuelve el número de elementos en P -isEmpty(): Comprueba si P está vacía -insertItem(k,e): Inserta un nuevo elemento e con llave k en P -minElement(): Devuelve (sin borrar) un elemento de P con menor llave; ocurre un error si P está vacía. -minKey(): Devuelve la menor llave en P; ocurre un error si P está vacía -removeMin(): Extrae de P y devuelve el elemento con menor llave; ocurre un error si P está vacía
5
5 Comparadores La forma más general y reusable de una cola de prioridad hace uso de objetos comparadores. Objetos Comparadores son externos a las llaves que se comparan y comparan dos objetos. El TDA comparador incluye: -isLessThan(a, b) -isLessThanOrEqualTo(a,b) -isEqualTo(a, b) -isGreaterThan(a,b) -isGreaterThanOrEqualTo(a,b) -isComparable(a)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.