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

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Algoritmer och data strukturer -Länkade listor
Sökning och sortering Linda Mannila
Leif Håkansson’s Square Dancer Rotation
Nya typer Konstruerare, selektorer och predikat Rekursiva datatyper
Föreläsning 7 Analys av algoritmer T(n) och ordo
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Binära Sökträd, kapitel 19
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Hashing / Hash tabeller -- Kapitel 20. Hash? Varför en annan datastruktur? Konstant tid för både insert- och find- operationer.
Träd och tillämpningar Data Structures & Problem Solving using Java -- Kapitel 19, 12.
Algoritm analys och rekursiva metoder kap 5,7
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 11 Arrayer.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Vektorer (klassen Vector) Sortering
TÄNK PÅ ETT HELTAL MELLAN 1-50
Listor En lista är en föränderlig ordnad samling objekt.
Diskreta, deterministiska system Projekt 1.2; Vildkatt
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Logikprogrammering 21/10 Binära träd
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Datastrukturer och algoritmer
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
Digitalitet.
NÄTVERKSPROTOKOLL Föreläsning
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
1 Objektorienterad programmering för ingenjörer, VT04 Kort repetition av C-programmering och nyttiga verktyg. Tomas Larsson B439.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
DA7351 Programmering 1 Databas SQL Föreläsning 24.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sökning, Symbol tabeller Binära sökträd.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Sol i Syd Projektdagen 2017 Region Blekinge
SP Sveriges Tekniska Forskningsinstitut
Kursintroduktion Brukarorienterad design
Behandlas under 4 kursträffar i mineralmuseet mars-april 2017
Sällsynta jordartsmetaller
Men kolla bildspelet vecka 18 först
Arbetsgrupp ”Hat och hot mot förtroendevalda”
X Avrundning och överslagsräkning
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Tularemi.
Inför avtalsrörelsen 2016 Lars Calmfors
BYGDSAM Anundsjö Grundsunda BLT Nätra.
Så här säljer du med SMS.
Arbetsmarknadsutsikterna hösten 2016
Fortum: Lars Modigh Agneta Molinder Synovate Temo: Gun Pettersson
Presentation av verksamhetsplan
Lagen om Energikartläggning i stora företag
TATA31 Linjär algebra Examinator, föreläsare: Ulf Janfalk
Kursens innehåll Ekonomin på kort sikt: IS-LM modellen
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

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

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

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

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)

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…..??

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

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

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

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

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

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

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

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

Exempel – insert() Percolate up

Exempel – Remove() Percolate down

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

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)

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

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

Heapsort – Steg 3 Sortera med deleteMax

Heapsort – Step 3 Sort with deleteMax

Heapsort – Steg Sortera med deleteMax 5 5

Heapsort – Steg 3 Sortera med deleteMax

Heapsort – Steg 3 Sortera med deleteMax 1 1

Heapsort – Steg 3 Sortera with deleteMax

Heapsort – Steg 3 Sortera med deleteMax

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