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

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

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: 7 n 1/ log n. (log n) 4

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

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)

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 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

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

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

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

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: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Datastrukturer (recap)

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

Datastrukturer (recap)

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

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

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

DM02 Kogt ned. Kokken. Januar 2006

Datastrukturer (recap) Datastruktur = data + operationer herpå

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

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

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

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

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

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

Danmarks Tekniske Universitet

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Sommeren 2001, opgave 1

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

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

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

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

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

DM507 - Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Algoritmer og invarianter

Analyse af algoritmer

Sortering i lineær tid

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Prioritetskøer og hobe. Philip Bille

Sammenhængskomponenter i grafer

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

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

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

Introduktion til datastrukturer. Philip Bille

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

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmisk geometri

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Binære søgetræer og skiplister

Transkript:

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er Ω(n)? n er O( n )? n er O(8logn)? + er O(n)? n er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) n / n /n logn n /logn logn (logn) n / n /logn n /n Opgave (%) I det følgende angiver f og g positive ikke-aftagende funktioner. Hvilke af følgende udsagn medfører at f(n) er O(g(n))? Der findes n N så f(n) g(n) For alle n N er f(n) g(n) For alle N N findes n N så f(n) g(n) Der findes N N så for alle n N er f(n) g(n) g(n) = Ω(f(n))

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Angiv for hver af nedenstående algoritmer udførselstiden som funktion af n i O-notation. Algoritme Loop(n) i = while i n i = i+i+i Algoritme Loop(n) i = while i n j = while j n j = j +j i = i+ Algoritme Loop(n) for i = to n j = while j i j = j + Svar Loop: O(log n) Svar Loop: O(n) Svar Loop: O(n ) Opgave (%) Angiv for hver af nedenstående algoritmer udførselstiden som funktion af n i O-notation. Algoritme Loop(n) i = j = while i n j = j + i = i+j Algoritme Loop(n) i = while i n i = i+i j = while j i j = j Algoritme Loop(n) i = while i n i = i i j = while j i j = j + Svar Loop: O( n) Svar Loop: O((logn) ) Svar Loop: O(n )

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave 6 (%) Tegn hvordan nedenstående binære max-heap ser ud efter indsættelse af elementet. Tegn hvordan nedenstående binære max-heap ser ud efter en heap-extract-max operation. Opgave (%) Tegn den binære max-heap efter indsættelse af elementerne,,,,, i den givne rækkefølge, startende med den tomme heap. Opgave 8 (%) Angiv hvordan nedenstående array ser ud efter anvendelsen af build-max-heap for arrayet. 6 8 8 6 6 8 8 6

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side 6 af sider Opgave (%) Betragt radix-sort anvendt på nedenstående liste af tal (d =, k = ). Angiv den delvist sorterede liste efter at radix-sort har sorteret tallene efter de to mindst betydende cifre. 8 00 0 0 00 0 8 0 Opgave (%) Angiv resultatet af at anvende Partition(A,,) på nedenstående array. 6 8 6 8 0 A 8 6 6 8 Opgave (%) 6 8 6 8 0 8 6 6 8 Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter indsættelse af elementet. Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter slettelse af elementet.

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Angiv hvorledes knuderne i nedenstående binære søgetræ kan farves røde og sorte, således at det resulterende træ er et lovligt rød-sort træ. 8 8 6 6 6 6 Opgave (%) Tegn hvordan nedenstående rød-sorte træ (dobbeltcirkler angiver røde knuder) ser ud efter indsættelse af elementet. Opgave (%) Tegn en hashtabel hvor der anvendes kædede lister til at håndtere kollisioner, når hashfunktionen er h(k) = k mod og der indsættes elementerne,,,,,, og i den givne rækkefølge. 0 6

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side 8 af sider Opgave (%) Tegn hvordan en hashtabel der anvender linear probing ser ud efter at elementerne 6,, 0,, 8,,, og indsættesidengivnerækkefølge, nårhashfunktionenerh(k) = k mod. 0 6 8 0 6 8 0 8 6 Opgave 6 (%) Tegn hvordan en hashtabel der anvender dobbelt hashing ser ud efter at elementerne,,, 8,, 6, og indsættes i den givne rækkefølge, når hashfunktionerne er h (k) = k mod og h (k) = k mod, og hashtabellen har størrelse. 0 6 8 0 6 8 6 8 Opgave (%) Angiv for hver af nedenstående datastrukturer indeholdende n elementer, hvor lang tid det tager at rapportere elementerne i datastrukturen i sorteret rækkefølge, som funktion af n i O-notation. Rød-sort søgetræ? O(n) Binær max-heap? O(n log n) Hashtabel med linear probing ved 0% fyldningsgrad? O(n log n)

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave 8 (%) For en sorteret liste af tal x,...,x n, definerer vi F.eks. er sep(x,...,x n ) = min{x n x n,x n x n,...,x x,x x } sep(,,8,,,) = min{,, 8,8, } = Betragt et søgetræ hvor hver knude v ud over et element v.e, gemmer v.sep som er lig sep(elementerne i v s undertræ), og v.min og v.max som er hhv. det mindste element og største element i v s undertræ. Angiv hvorledes disse værdier kan beregnes når den tilsvarende information er kendt ved de to børn v.left og v.right (det kan antages at disse begge eksisterer). F.eks. betegner v.right.min det mindste element i v s højre undertræ. v.left v v.right Svar v.min = Svar v.max = v.left.min v.right.max Svar v.sep = min{v.left.sep, v.right.sep, v.e v.left.max, v.right.min v.e} Opgave (%) Angiv den resulterende union-find struktur efter nedenstående sekvens af operationer, når der anvendes union-by-rank og stikomprimering. Angiv for hver knude rangen af knuden. makeset(a) makeset(b) makeset(c) makeset(d) makeset(e) makeset(f) union(a,b) union(a,c) union(d,e) union(b,d) union(c,f) a 0 e 0 0 b c d f 0

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Transitionssystem Halver-og-kvadrer Konfigurationer: {[i,j] heltal i,j i 0 j 0} [i,j] [i/,j j] if i i lige [i,j] [i,j] if i [i,j] [i,j ] if j Opgave 0 (%) For hvert af nedenstående udsagn, angiv om de er en invariant for ovenstående transitionssystem Halver-og-kvadrer. Startkonfigurationen antages at være [n, ] hvor n 0. i n j i j n j i n i+j n+ Opgave (%) For hver af nedenstående funktioner, angiv om de er en termineringsfunktion for ovenstående transitionssystem Halver-og-kvadrer. µ(i,j) = i µ(i,j) = i+j µ(i,j) = j i µ(i,j) = i+j i µ(i,j) = n

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Algoritme Loglog(n) Inputbetingelse : heltal n Outputkrav : r = log (log (n)) Metode : p r 0 {I} while p p n do r r + p p p Opgave (%) For hvert af nedenstående udsagn, angiv om de er en invariant I for ovenstående algoritme Loglog. p r p = r p = r n r = p p n Opgave (%) For hver af nedenstående funktioner, angiv om de er en termineringsfunktion for ovenstående algoritme Loglog. µ(r,p) = n p µ(r,p) = p µ(r,p) = n p µ(r,p) = n r µ(r,p) = n r

Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Givet et sorteret array A med n tal, n, beregner nedenstående algoritme antal forskellige elementer i A. Denne værdi betegnes SetSize(A) = + {i A[i ] A[i] < i n} For at vise gyldigheden af algoritmen skal I i og I s være invarianter omkring variablerne i og s. Angiv invarianter hvormed gyldigheden af algoritmen kan bevises (bevis for invarianterne kræves ikke). Svar I i : Algoritme ComputeSetSize(n) Inputbetingelse : sorteret array A med n tal, n Outputkrav : s = SetSize(A) Metode : i ; s ; {I i I s } while i < n do if A[i] A[i+] do s s+; i i+; i n Svar I s : s = SetSize(A[..i]) For at kunne bevise at algoritmen terminerer, kræves en passende termineringsfunktion. Angiv en termineringsfunktion (bevis for at termineringsfunktionen har de nødvendige egenskaber kræves ikke). Svar µ: Opgave (%) n i Antag en kø implementeres ved to stakke Front og Tail, og at operationerne på køen er implementeret som: Algoritme Enqueue(x) Metode : Tail.push(x) Algoritme Dequeue() Metode : if Front.empty() then while not Tail.empty() do Front.push(Tail.pop()) return Front.pop() For at argumentere at operationerne tager amortiseret O() tid kræves en potentiale funktion. Angiv en potentiale funktion hvorved tiden kan bevises. Argumentation for tiden kræves ikke. Svar Φ(Front,Tail) : Tail