Danmarks Tekniske Universitet

Relaterede dokumenter
Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) 2. n 2 + log n 3 n. n n (log n)

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn

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

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

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

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

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

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

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

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

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

Datastrukturer (recap)

Prioritetskøer og hobe. Philip Bille

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n

DM507 Algoritmer og datastrukturer

Datastrukturer (recap)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

Datastrukturer (recap) Datastruktur = data + operationer herpå

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

DM507 Algoritmer og datastrukturer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Algoritmisk geometri

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

Sortering af information er en fundamental og central opgave.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

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

Mindste udspændende træ

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Skriftlig eksamen i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Transkript:

side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler. Vægtning af opgaverne: Opgave - 20%, Opgave 2-20%, Opgave 3-20%, Opgave 4-5%, Opgave 5-25 %. Vægtningen er kun en cirka vægtning. lle opgaver besvares ved at udfylde de indrettede felter nedenfor. Som opgavebesvarelse afleveres blot denne og de efterfølgende sider i udfyldt stand. vis der opstår pladsmangel kan man eventuelt benyttes ekstra papir som så vedlægges opgavebesvarelsen. ksamenssættet fortsætter på næste side

side 2 af 2 sider Opgave (kompleksitet). ngiv for hver af nedenstående udsagn om de er korrekte: 20 n4 00n 3 = O(n 3 ) (log n) 2 = O(n) 2 n5 = O(n 4 ) 2 n = O(3 n ) n 4 (n )/5 = O(n 5 ) Ja Nej.2 Skriv følgende liste af funktioner op i voksende rækkefølge efter asymptotisk vækst. vs. hvis funktionen g(n) følger umiddelbart efter funktionen f(n) i din liste, så skal der gælde at f(n) = O(g(n)). 5000(log n) 2 4n 4 n2 0000n n /00 4n log n Svar:.3 ntag at du har en algoritme hvis køretid er præcist 2n 3. vor meget langsommere kører algoritmen hvis du forbdobler inputstørrelsen? dobbelt så langsom 3 gange langsommere 4 gange langsommere 8 gange langsommere 6 gange langsommere.4 etragt nedenstående algoritme. lgorithm Løkke(n) : for i = to n do 2: for j = to n + i do 3: print i + j 4: end for 5: end for Køretiden af algoritmen er (sæt kun ét kryds): it svar skal være så tæt som muligt O(log n) O(n) O(n log n) O(n 2 log n) O(n 3 ) O(n 2 ) O(2 n ) O(n 4 ) I O( n) ksamenssættet fortsætter på næste side 2

side 3 af 2 sider.5 etragt nedenstående algoritme. lgorithm 2 Løkke2(n) : i = 2: while (i < n) do 3: for j = to n do 4: i = i + 5: end for 6: i = 2 i 7: end while Køretiden af algoritmen er (sæt kun ét kryds): it svar skal være så tæt som muligt O(log n) O(n) O(n log n) O(n 2 log n) O(n 3 ) O(n 2 ) O(2 n ) O(n 4 ) I O( n) Opgave 2 (grafer) 2. ngiv et korteste veje træ for nedenstående graf når korteste veje beregningen sker med hensyn til startknuden. ngiv for hver knude afstanden fra knuden. 3 2 4 2 2 4 8 5 7 3 2 I 4 ngiv korteste veje træet og afstandene her: I ksamenssættet fortsætter på næste side 3

side 4 af 2 sider 2.2 etragt nedenstående graf. I a) ngiv et S træ for grafen når S genemløbet starter i knuden. ngiv S-dybde/lag for hver knude. et antages at incidenslisterne er sorteret i alfabetisk orden. I b) ngiv et S træ for grafen, når S genemløbet starter i knuden. ngiv en S nummerering af knuderne (en S nummerering er den rækkefølge knuder bliver besøgt i). et antages at incidenslisterne er sorteret i alfabetisk orden. I ksamenssættet fortsætter på næste side 4

side 5 af 2 sider 2.3 ngiv en topologisk sortering af knuderne i nedenstående graf. 2.4 r nedenstående graf todelt? vis ja, så angiv en opdeling af knuderne. vis nej, så forklar hvorfor. I ksamenssættet fortsætter på næste side 5

side 6 af 2 sider Opgave 3 (modellering og anvendelse af algoritmer/datastrukturer) I det lille land lgostan har man besluttet, at lave et registersystem. I første version af systemet skal registret kun kunne håndtere følgende tre operationer: Init(n): Initialiser registret, så det kan håndtere et maksimum på n personer i registret. Indsæt(PR, indkomst): Indsæt en person med cpr-nummer PR i registret. Til personen skal der tilknyttes en oplysning om årlig indkomst indkomst i kr. et antages, at registret ikke allerede indeholder en person med cpr-nummer PR i forvejen. SletLavesteIndkomst(): Returner cpr-nummeret for en person, der har den laveste indkomst, samt slet denne person fra registret. 3. eskriv hvordan første version af registret kan laves, så Init(n) tager tid O(n), og de to andre operationer tager tid O(log n), hvor n er det maksimale antal personer der kan være i registret. usk at begrunde dit svar og at argumentere for køretiderne. ksamenssættet fortsætter på næste side 6

side 7 af 2 sider nden version af registret skal ud over ovenstående operationer også understøtte følgende operation: indlleunder(k): Udskriv personnumrene på alle personer der tjener mindre end k kr om året. 3.2 eskriv hvordan anden version af registret kan laves, så indlleunder(k) tager O(n k ) tid, hvor n k er antal personer i registret der tjener mindre end k kr om året. Procedurene Init, Indsæt og Slet- LavesteIndkomst skal have samme køretid som i opgave 3.. rgumenter for at din procedure er korrekt og angiv køretiden for proceduren. vis du ikke kan få køretiden ned på O(n k ), så angiv den bedst mulige implementation af proceduren (i tekst eller pseudokode), som du kan finde på (husk stadig argumentation for korrekthed og køretid). ksamenssættet fortsætter på næste side 7

side 8 af 2 sider Opgave 4 (Træer og rekursion) enne opgave handler om rekursion og rodfæstede binære træer. ver knude har enten to eller ingen børn. Knuden x s venstre barn betegnes left[x], og dens højre barn betegnes right[x]. vis knuden x ikke har nogle børn, har left[x] og right[x] den specielle nil værdi. vis knude x ikke har nogle børn, kaldes den et blad. llers kaldes den en intern knude. Såfremt rodknuden for et træ er nil, er træet tomt. ver knude i træet har et felt size[x], der indeholder et heltal. etragt følgende algoritme: lgorithm 3 Zero(x) : if (x nil) then 2: size[x] = 0 3: Zero(left[x]) 4: Zero(right[x]) 5: end if Lad x være rodknuden for træet T. fter udørelsen af proceduren Zero(x) vil alle felterne size[x] være 0. 4. ngiv køretiden af proceduren Zero(x) i O-notation, hvor x er roden i et træ med n knuder. egrund dit svar. ksamenssættet fortsætter på næste side 8

side 9 af 2 sider 4.2 Lad T (x) betegne undertræet med rod x i T. Proceduren InitSize(x), skal givet roden x i et træ T med n knuder initialisere felterne size[y] for alle knuder y i T, så size[y] bliver lig med antallet af knuder i T (y). Se eksemplet nedenfor. x size[x] = 9 size[y] = y z size[z] = 7 size[v] = 3 v w size[w] = 3 r s t u size[r] = size[s] = size[t] = size[u] = iv pseudokode for InitSize(x), så køretiden er O(n). ngiv køretiden af din algoritme. ksamenssættet fortsætter på næste side 9

side 0 af 2 sider Opgave 5 (datastrukturer) 5. Lad S være en stak. Udfør følgende operationer fra venstre til højre: et bogstav i betyder Push(S,i) og betyder Pop(S). * T U * * I N * O R * M * T I K ngiv sekvensen af bogstaver der bliver pop et (returneret af Pop(S)) af disse operationer: U T I R M U T N R M K I T O U T N R M T U I N U T N R M I T O U T N O M 5.2 Lad være en kædet hashtabel (chained hashing) af størrelse 7 med hashfunktion h(x) = 3x mod 7. ngiv hvordan hashtabellen ser ud efter indsættelse af tallene 4,, 2, 8, 0,. ksamenssættet fortsætter på næste side 0

side af 2 sider 5.3 enne opgave omhandler (ubalancerede) binære søgetræer, som beskrevet i de udleverede noter LRS kapitel 2. Opgave a ngiv hvordan det binære søgetræ nedenfor ser ud efter indsættelse af et element med nøgle 8. 0 4 2 3 9 4 7 3 Opgave b ngiv hvordan det binære søgetræ nedenfor ser ud efter sletning elementet med nøgle 4. 0 4 2 2 9 4 3 7 3 Opgave c ngiv den rækkefølge af knuderne bliver skrevet ud i når man laver et preorder gennemløb af ovenstående træ. 0 4 2 2 9 4 3 7 3 Preorder gennemløb: ksamenssættet fortsætter på næste side

side 2 af 2 sider 5.4 Lad være en sorteret tabel (array) af n heltal. Proceduren ount(x,y) tager to heltal x og y som argumenter, hvor x < y. Proceduren ount(x,y) skal returnere antallet af tal i tabellen der både er større end x og mindre end y. ksempel: vis = 5, 0, 33, 49, 66, 75, 82, 95, 00, så returnerer ount(33,85) tallet 4. eskriv hvordan ount(x,y) kan implementeres (giv pseudokode eller forklaring), så den har kompleksitet O(log n). vis du ikke kan få køretiden ned på O(log n), så angiv den bedst mulige implementation af proceduren (i tekst eller pseudokode), som du kan finde på 2