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 4 4 2 2 3 3

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

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/2 102345678 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() 21 24 31 65 26 32 14 16 68 19 13 Percolate up

15 Exempel – Remove() 16 68 19 13 14 24 21 65 26 32 31 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 4 4 5 5 1 1 6 6 3 3 7 7 2 2

20 Heapsort – Steg 3 Sortera med deleteMax 5 5 4 4 1 1 6 6 3 3 2 2 7 7

21 Heapsort – Step 3 Sort with deleteMax 5 5 4 4 1 1 6 6 3 3 2 2 7 7

22 Heapsort – Steg 3 4 4 1 1 3 3 7 7 2 2 6 6 Sortera med deleteMax 5 5

23 Heapsort – Steg 3 Sortera med deleteMax 2 2 3 3 7 7 6 6 5 5 1 1 4 4

24 2 2 5 5 3 3 7 7 6 6 4 4 Heapsort – Steg 3 Sortera med deleteMax 1 1

25 4 4 5 5 1 1 7 7 6 6 3 3 2 2 Heapsort – Steg 3 Sortera with deleteMax

26 4 4 5 5 3 3 7 7 6 6 1 1 2 2 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