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

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

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.

Danmarks Tekniske Universitet

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

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

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 )?

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

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 n (log n) 2. n 2 + log n 3 n. n n (log n)

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

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

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

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

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

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

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

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

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 3/2. n logn (3/2) n. 2 3logn (3/2) n

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

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

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

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

Prioritetskøer og hobe. Philip Bille

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Analyse af algoritmer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

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

Mindste udspændende træ

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DM02 Kogt ned. Kokken. Januar 2006

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

Analyse af algoritmer. Analyse af algoritmer. Analyse af algoritmer. Køretid

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

Hashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

Datastrukturer (recap)

Dynamisk programmering

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Datastrukturer (recap)

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

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Sammenhængskomponenter i grafer

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

Dynamisk programmering

Algoritmisk geometri

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Dynamisk programmering

Algoritmer og invarianter

Transkript:

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 er ikke tilladt at medbringe lommeregner. Varighed: 4 timer. Vægtning: Opgave 1-24 %, Opgave 2-20 %, Opgave 3-16 %, Opgave 4-15 %, Opgave 5-25 %. Vægtning er kun approksimativ. Karakteren gives ud fra en helhedsvurdering. Alle opgaver besvares ved at udfylde de indrettede felter nedenfor. Som opgavebesvarelse afleveres blot denne og de efterfølgende sider i udfyldt stand. Hvis der opstår pladsmangel kan man eventuelt benytte ekstra papir som så vedlægges opgavebesvarelsen. Asymptotiske grænser skal angives så tætte som muligt. Medmindre andet er angivet er basen på alle logaritmer 2 og log k n betegner (log n) k. 1

Eksamen 02105, F14 side 2 af 14 1 Kompleksitet 1.1 (6 %) Angiv for hver af nedenstående udsagn om de er korrekte: 3n 4 + 2n 3 = O(n 3 ) 4n + log 3 n = Ω(n) 1 3 n5 = Ω(n 4 ) ( 1 3 n5 + n 2 + n)n = Ω(n 6 ) 2 n+2 = Θ(2 n ) Ja Nej 1.2 (6 %) Arranger følgende funktioner i voksende rækkefølge efter asymptotisk vækst. Dvs. hvis funktionen g(n) følger umiddelbart efter funktionen f (n) i din liste skal der gælde at f (n) = O(g(n)). n 1/3 log n 2 log n 17 n 3n 2 1 4 log4 n n 0.75 1.3 (6 %) Angiv køretiden for nedenstående algoritme. Skriv dit svar i O-notation som funktion af n. Algoritme 1 Alg1(n) 1: i = 1 2: while i n do 3: j = 1 4: while j n 7 do 5: j = j + 1 6: end while 7: i = i + 1 8: end while 2

Eksamen 02105, F14 side 3 af 14 1.4 (6 %) Angiv køretiden for nedenstående algoritme. Skriv dit svar i O-notation som funktion af n. Algoritme 2 Alg2(n) 1: i = 1 2: j = 1 3: while i n do 4: if j n then 5: j = j + 1 6: else 7: j = 1 8: i = i + 1 9: end if 10: end while 3

Eksamen 02105, F14 side 4 af 14 2 Datastrukturer 2.1 (4 %) Tegn hvordan nedenstående max-hob ser ud efter indsættelse af et element med nøgle 4. 12 8 2 7 6 1 2.2 (4 %) Tegn hvordan nedenstående max-hob ser ud efter en EXTRACT-MAX operation. 12 8 2 7 6 1 4

Eksamen 02105, F14 side 5 af 14 2.3 (4 %) Indsæt nøglesekvensen 70, 5, 2, 23, 80, 13, 26, 8 i en hashtabel, der anvender hægtet hashing og hashfunktion h(k) = k mod 9. Tegn indholdet af tabellen efter indsættelse af nøglesekvensen. 2.4 (4 %) Indsæt nøglesekvensen 14, 48, 55, 74 i en hashtabel, der anvender lineær probering og hashfunktion k mod 7. Tegn indholdet af tabellen efter indsættelse af nøglesekvensen. 5

Eksamen 02105, F14 side 6 af 14 2.5 (4 %) Vi vil gerne understøtte operationen MIN() på hver af de nedenstående fire datastrukturer. MIN() returnerer det mindste element i datastrukturen. F. eks. hvis datastrukturen indeholder elementerne {4, 6, 2, 19, 7} returnerer MIN() værdien 2. Angiv for hver af datastrukturerne hvor lang tid det vil tage at udføre MIN() operationen i O-notation som funktion af n, hvor n er antallet af elementer i datastrukturen. Tabel sorteret i stigende rækkefølge: Max-hob: Min-hob: Usorteret tabel: Binært søgetræ: 6

Eksamen 02105, F14 side 7 af 14 3 Grafer I alle opgaverne antager vi at incidenslisterne er sorteret i alfabetisk orden. Betragt følgende graf G. C I D H F A J E B G 3.1 (4 %) Angiv et DFS træ for G med start i knude A. C I D H F A J E B G 3.2 (4 %) Angiv et BFS træ for G med start i knude A. Angiv BFS-dybde/lag for hver knude. Antag incidenslisterne er sorteret i alfabetisk orden. C I D H F A J E B G 7

Eksamen 02105, F14 side 8 af 14 3.3 (4 %) Angiv de stærke sammenhængskomponenter i følgende graf. Det er tilstrækkeligt at opskrive opdeling af knuder. C I D H F A J E B G 3.4 (4 %) Angiv et korteste veje træ for følgende graf med start i knude A. Angiv længden af den korteste vej fra A til hver knude. C 4 A 5 3 B 5 D 1 8 10 J 9 11 4 25 11 4 G I 2 H 2 3 E 14 F 7 C I D H F A J E B G 8

Eksamen 02105, F14 side 9 af 14 4 Træer Denne opgave omhandler rodfæstede binære træer. Enhver knude x har felterne key[x], left[x] og right[x], der betegner hhv. nøglen, det venstre barn og det højre barn for x. 4.1 (1 %) En knude i et binært træ er en kædeknude hvis knuden har netop et barn og det barn ikke er et blad. Angiv alle kædeknuder i nedenstående træ. A B E C D F G H L O I M N P J K Q 4.2 (5 %) Giv en algoritme KÆDEKNUDE(X), der givet en knude x returnerer sand hvis og kun hvis x er en kædeknude. Din algoritme skal køre i konstant tid. Skriv din algoritme i pseudokode. Du må gerne antage at du har en konstant tids algoritme LEAF(X), der givet en knude x, returnerer sand hvis og kun hvis x er et blad. 9

Eksamen 02105, F14 side 10 af 14 4.3 (9 %) Giv en rekursiv algoritme TÆLKÆDEKNUDER(X), der givet rodknuden returnerer antallet af kædeknuder i træet. Skriv din algoritme i pseudokode og analyser køretiden af din algoritme som funktion af n, hvor n er antallet af knuder i træet. 10

Eksamen 02105, F14 side 11 af 14 5 Sociale netværk Et socialt netværk er en mængde af P personer og V venskabsrelationer. Hver venskabsrelation består af to personer p 1 og p 2 og vi siger at p 1 og p 2 er venner. Hvis p 1 er ven med p 2 er p 2 ven med p 1. F. eks. er {Hans, Børge, Otto, Knud, Finn} og {(Hans, Børge), (Otto, Knud), (Børge, Otto), (Hans, Otto), (Finn, Knud)} er socialt netværk med 5 personer og 5 venskabsrelationer. 5.1 (2 %) Beskriv hvordan man kan modellere et socialt netværk som en graf. 5.2 (1 %) Tegn grafen svarende til det sociale netværk i eksemplet. 11

Eksamen 02105, F14 side 12 af 14 5.3 (5 %) En gruppe X af k personer kaldes et tæt venskab hvis alle personer i X er venner med alle andre personer i X. Giv en algoritme, der givet et socialt netværk og en mængde X af k personer, afgør om X er et tæt venskab eller ej. Analyser køretiden af din algoritme som funktion af P, V og k. 12

Eksamen 02105, F14 side 13 af 14 5.4 (1 %) En venskabskæde af længde j er en sekvens af personer p 1,..., p j så p i er ven med p i+1 for alle i, 1 i < j. Givet en person p og et heltal t 0 er p s t-venner alle personer, der har en venskabskæde til p af længde højst t (vi definerer 0-venner af p til at være p selv). Angiv alle 2-venner af Hans i eksemplet. 5.5 (6 %) Giv en algoritme, der givet et socialt netværk, en person p og et heltal t 0, beregner alle t-venner af p. Analyser køretiden af din algoritme som funktion af P, V og t. 13

Eksamen 02105, F14 side 14 af 14 5.6 (6 %) Til enhver venskabsrelation r knytter vi en styrke styrke(r) som er et heltal større eller lig 0. Styrken af en venskabskæde er summen af styrkerne på hver venskabsrelation i venskabskæden. Giv en algoritme, der givet to personer p 1 og p 2 beregner den svageste venskabskæde mellem p 1 og p 2, dvs. beregner en venskabskæde af minimal styrke mellem p 1 og p 2. Analyser køretiden af din algoritme som funktion af P og V. 5.7 (4 %) Antag nu at styrken på en venskabsrelation altid er et heltal mellem 1 og 10. Giv en algoritme, der løser problemet fra sidste spørgsmål mere effektivt i dette tilfælde. Analyser køretiden af din algoritme som funktion af P og V. 14