Tema8 Colas Prioridad

5
1 Colas de Prioridad El TDA cola de prioridad Implementación de una cola de prioridad con una secuencia Ordenamiento elemental Asuntos en ordenamiento

description

cola prioridad, prioridad, colas, estructuras de datos

Transcript of Tema8 Colas Prioridad

Page 1: Tema8 Colas Prioridad

1

Colas de Prioridad• El TDA cola de prioridad• Implementación de una cola de prioridad con una secuencia• Ordenamiento elemental• Asuntos en ordenamiento

Page 2: Tema8 Colas Prioridad

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()

Page 3: Tema8 Colas Prioridad

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

POutput: Secuencia S ordenada por una relación de orden totalwhile !S.isEmpty() do

e S.removeFirst()P.insertItem(e, e)

while P is not empty doe P.removeMin()S.insertLast(e)

Page 4: Tema8 Colas Prioridad

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 Pcon 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

Page 5: Tema8 Colas Prioridad

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)