Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Størrelse: px
Starte visningen fra side:

Download "Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012"

Transkript

1 Algoritmer og datastrukturer Course No Cheat Sheet 2012 May 15,

2 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet Køretid Asymptotisk vækst Eksempel på køretid Grafer BFS Køretid DFS Køretid Korteste vej Køretid Topologisk sortering (DAG) Sammenhængskomponenter Hobe og binære søgetræer Hobe MinHob MaxHob Binære søgetræ Insert Delete Pre-order Post-order Datastrukturer Stakke Push(S,i), Pop(S) Binært søgetræ Operationer, køretid Hobe Operationer, køretid Hashing Operationer, køretid Incidenslister Pladsforbrug, køretid Incidensmatrix Pladsforbrug, køretid

3 KOMPLEKSITET 1 Kompleksitet 1.1 Køretid O : øvre grænse, denne skal altid være langsomst. Eksempel: n 3 = O(n 4 ). I dette tilfælde er n 4 langtsommereendn 3. Ω : nedre grænse, denne skal altid være hurtigst. Eksempel: n 4 = Ω(n 3 ). I dette tilfælde er n 3 hurtigereendn 4. Θ : tæt grænse, denne skal altid være den samme som den du får opgivet. Eksempel: n 3 = Θ(n 3 ). Generelt eksempel: 1.2 Asymptotisk vækst Funktioner er listet med hurtigste funktioner først. 1.3 Eksempel på køretid T(n) = 7n 2 + 3n + 42 T(n) = O(n 2 ), O(n 3 ), Ω(n 2 ), Ω(n), Θ(n 2 ). T(n) O(n), Ω(n 3 ), Θ(n), Θ(n 3 ). 1 log(n) n n n log(n) n 2 2 n n! Algorithm 1 Algo1(n) for i = 1 to n do for j = 1 to n do print i + j end for end for n n konstant Køretiden er T (n) = Θ(n 2 ) da man ser bort fra konstanten. Algorithm 2 Algo2(n) if n > 0 then Algo2([n/2]) end if log(n) Køretiden er T (n) = Θ(log(n)) da det er et rekursivt kald. Algorithm 3 Algo3(n) i = 1 while i n do j = 1 while j n do j = j + 1 end while i = 2i end while log(n) n Køretiden er T (n) = Θ(n log(n)) da det inderste while loop kører til n og det yderste bliver halveret da i bliver fordoblet, derfor log(n) (kan sammenlignes med et rekursivt kald). 3

4 GRAFER 2 Grafer 2.1 BFS Første knude er i lag 0 Kun alfabetisk hvis skrevet i opgaven Lag: distancen fra startknuden, typisk knude A Husk at følge pilene Given graf G: Løsning: Figure 1: Grafen G Figure 2: BFS løsning Køretid Køretid: O(n + m) 4

5 2.2 DFS GRAFER 2.2 DFS Første knude har vægt 1 samt slutvægt Køres alfabetisk Alle knuder har 2 vægte En knude besøges 2 gange i træk ved dead end Husk at returnere til start knuden Given graf G: Løsning: Figure 3: Grafen G Figure 4: DFS løsning Køretid Køretid: O(m+n)) 5

6 2.3 Korteste vej GRAFER 2.3 Korteste vej Startknuden har altid afstand 0. Pilene skal følges i ruten, dog bruges pilene ikke i svaret. Bogstav rækkefølge benyttes ikke. Forsikre altid at den rute der vælges er den korteste til den givne knude. Given graf: Løsningen: Figure 5: Kortest vej træ Figure 6: Kortest vej træ færdig Køretid Kommer an på valg af datastruktur, se slide 12 om Korteste veje i grafer, hvor bl.a. Dijkstras algoritme er beskrevet. 6

7 2.4 Topologisk sortering (DAG) GRAFER 2.4 Topologisk sortering (DAG) Ingen pile må pege på startknude Skal kunne sorteres så alle pile peger fremad. Må ikke indeholde sammenhængskomponenter Given graf: Løsning: D, B, E, G, C, F, H, A Bevis, ingen sammenhængskomponenter: Figure 7: Given graf Figure 8: Bevis Køretid Kommer an på valg af datastruktur, se slide 7 om DFS og topologisk sortering. 7

8 2.5 Sammenhængskomponenter GRAFER 2.5 Sammenhængskomponenter Knuder hvor der kan køres i ring (kreds) Hvis en knude står alene er det også en kreds Løsning: A, B, D, I, H E, F, J G Figure 9: Sammenhængskomponenter 8

9 HOBE OG BINÆRE SØGETRÆER 3 Hobe og binære søgetræer 3.1 Hobe MinHob Ved insert indsættes knuden på næste plads og der bobles op Vigtigt at hob ordenen overholdes Graf hvor 1 bliver indsat på den ledige plads: Graf hvor knude 1 er blevet boblet op: Figure 10: minhob Figure 11: minhob indsættelse af 1 Ved delete slettes den ønskede knude, og erstates med den sidste knude i grafen. Vigtigt at hob ordenen overholdes Hvis hob ordenen ikke er overholdt efter udskiftning af knuder, boble op eller ned. Ved ExtractMin udtrækker man den øverste knude i træet. Knuden udskiftes med den sidste knude i træet, så hob ordenen overholdes. Da denne knude højst sandsynligt er større end dens børn, skal denne knude bobles ned med den mindste af knudens børn. 9

10 3.1 Hobe HOBE OG BINÆRE SØGETRÆER Figure 12: minhob extract 2 Løsning: Figure 13: minhob nøgle 2 extracted MaxHob Samme operationer som MinHob: Ved insert indsættes knuden på næste plads og der bobles op Vigtigt at hob ordenen overholdes Ved delete slettes den ønskede knude, og erstates med den sidste knude i grafen Vigtigt at hob ordenen overholdes Hvis hob ordenen ikke er overholdt efter udskiftning af knuder, boble op eller ned Ved ExtractMax, samme fremgangsmetode for ExtractMin 10

11 3.2 Binære søgetræ HOBE OG BINÆRE SØGETRÆER 3.2 Binære søgetræ Insert Venstre del træ er alle mindre end roden Højre del træ er alle større end roden. Given binært træ: Figure 14: Binært søgetræ Indsæt key 8: Løsning: 8 < 10, 8 > 4, 8 < 9, 8 > 7 indsæt 8 som 7 s højre barn: Figure 15: Binært søgetræ insert Delete Nul børn: Slet knude v Ét barn: split v ud (slet v og ryk barn op) 11

12 3.2 Binære søgetræ HOBE OG BINÆRE SØGETRÆER Figure 16: Binært søgetræ To børn: Brug successor til knuden v. Successor: Mindste knude v. Slet knude 4: Løsning: Knude 4 har to børn. Erstat knude 4 med knudens successor. Figure 17: Binært søgetræ delete 4 12

13 3.2 Binære søgetræ HOBE OG BINÆRE SØGETRÆER Pre-order Besøg knude Besøg rekursivt venstre deltræ Besøg rekursivt højre deltræ Gå træet igennem til venstre først: Figure 18: Binært søgetræ Pre-order gennemløb: 10, 4, 2, 1, 3, 9, 7, 12, 14, Post-order Besøg rekursivt venstre deltræ Besøg rekursivt højre deltræ Besøg knude Figure 19: Binært søgetræ Post-order gennemløb: 25, 43, 33, 14, 64, 53, 84, 99, 97, 72, 51 13

14 DATASTRUKTURER 4 Datastrukturer 4.1 Stakke Push(S,i), Pop(S) Push betyder at man ligger bogstavet på stakken og pop fjerner det igen. En stack er en FIFO (First In First Out) struktur hvilket betyder at man fjerne det element man lagde på sidst. Ifølgende eksempel betyder et bogstav i, PUSH(S,i) og * betyder POP(S). Løsning: DUTNRM D*TU**IN*FOR*M*ATIK 4.2 Binært søgetræ Operationer, køretid Insert, search, delete, max, min, predecessor, successor: Θ(h) Binært søgetræ: h = n Balanceret Binært søgetræt: h = log(n) 4.3 Hobe Operationer, køretid Maximum: O(1) Insert: O(1) + tid for at boble op = O(log(n)) ExtractMin/Max: O(1) + tid for at boble op = O(log(n)) Delete: O(log(n)) Increase-Key: O(log(n)) 4.4 Hashing Operationer, køretid Seperat hægtning: Hash: Afbild nøgle til heltal mellem 0 og n-1: O(1) Insert: Indsæt i starten af den i te liste: O(1), O(n) hvis vi skal checke om det allerede findes Delete: Slet fra i te liste: O(n i ), n i = elementer i den i te liste Søg: Behøver kun at søge i den i te liste: O(n i ) 4.5 Incidenslister Pladsforbrug, køretid Knuder: n, Kanter: m Pladsforbrug: Θ(n + m) Degree?? Θ(m + n) tid for at identificere alle kanter. 14

15 4.6 Incidensmatrix DATASTRUKTURER 4.6 Incidensmatrix Pladsforbrug, køretid Pladsforbrug: Θ(n 2 ) Θ(1) tid for at checke om (u, v) er en kant. Θ(n 2 ) tid for at identificere alle kanter. 15

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3 02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F09 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer 1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTOI, RUS UNIVERSITET Science and Technology ESEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. juni 0, kl. 9.00-.00

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen

Læs mere

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb.

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb. Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Algoritmer på træer og trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Tirsdag den 20. marts 2012, kl.

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere