1 / 5

Colas de Prioridad

Colas de Prioridad. El TDA cola de prioridad Implementación de una cola de prioridad con una secuencia Ordenamiento elemental Asuntos en ordenamiento. Llaves y Relaciones de Orden Total. Una Cola de Prioridad clasifica sus elementos por la key con una relación de orden total

sanjiv
Télécharger la présentation

Colas de Prioridad

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Llaves y Relaciones de Orden Total • Una Cola de Prioridad clasifica sus elementos por la key con una relación de ordentotal • 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. 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. 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. 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)

More Related