Presentation laddar. Vänta.

Presentation laddar. Vänta.

Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.

Liknande presentationer


En presentation över ämnet: "Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14."— Presentationens avskrift:

1 Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14

2 Köer med prioritet, varför? Ett behov av olika prioritesnivåer.  Skrivare-kö 1-sida skrivs ut/ 100-sidor skrivs ut  TCP/IP Stack ”Fast-lane” för mycket viktig trafik (RT)  Real-tid system Schemaläggning

3 Prioritets tilldellning Varje uppgift / objekt i kön innehåller också ett prioritet-nummer  Vanligtviss positiva heltal Där största värde har minsta prioritet

4 Mer om priority queues… Viktiga operationer  Lägg till, nya objekt … med tilldelning av prioritet insert()  Hitta, objektet med högst prioritet … den mista prioritet-nummer findMin()  Ta bort, objektet med högst prioritet deleteMin() (put, get, remove) or (enqueue, peek, dequeue)

5 Passande datastruktur? Snaba insert  Helst konstant tid ! Snabba romove och sökning  Helst konstant tid ! En kompromis datastruktur mellan kö och binära träd…..??

6 Ordnad länkad-lista insert()  konstant tid! findMin()  Linjär tid… H H T T

7 Sorterad länkad-lista insert()  Linjär tid… findMin()  Konstant tid! H H T T

8 Binära träd insert()  log N findMin()  log N

9 Binära Träd insert()  log N findMin()  log N

10 Balancerade binära träd insert()  log N findMin()  log N Kräver ”hårt” arbete för balancering

11 Kompromis – Binary Heap Kombination av två egenskaper  Strukturell egenskap Representeras inplicit  Order egenskap Heap-order

12 Structurell egenskap Implicit representation  Representeras som ett komplett binär träd med array För ett objekt på array-position x:  Left child på array-position 2x  Rigth child på array-position 2x + 1  Parent at array-position x/ Root

13 Order egenskap Heap-order  För ett objekt X som har parent P gäller: X’s priority key has to be greater than P’s priority key  Objektet med den minsta prioritets- nummer ( högst prioritet) finns alltid i rooten. Konstant tid for findMin()!

14 Exempel – insert() Percolate up

15 Exempel – Remove() Percolate down

16 … Hur bra är den? insert()  log N -- Worstcase  Konstant tid -- Average deleteMin()  log N – Worstcase AND as an average

17 Prioritets kö för sortering – Heapsort Använder a max heap Heapsort 1. (Strukturerar data ) 2. Bygger heap 3. Använder deleteMax för att ta bort data O(N log N) (worst-case)

18 Heapsort – Steg 1 Kopierara data i en heap struktur Behövs inte om data redan är i array ?

19 Heapsort – Steg 2 Bygger heap Perculate down frrån alla föräldrar Börjar med sista

20 Heapsort – Steg 3 Sortera med deleteMax

21 Heapsort – Step 3 Sort with deleteMax

22 Heapsort – Steg Sortera med deleteMax 5 5

23 Heapsort – Steg 3 Sortera med deleteMax

24 Heapsort – Steg 3 Sortera med deleteMax 1 1

25 Heapsort – Steg 3 Sortera with deleteMax

26 Heapsort – Steg 3 Sortera med deleteMax

27 Slutsats Priority Queues  Unsorted linked-list  Sorted linked-list  Binary trees  Binary heap Heap sort  Fast! (O(N log N) worst-case)


Ladda ner ppt "Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14."

Liknande presentationer


Google-annonser