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

Relaterede dokumenter
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: (logn) 5. 5n 2 5 logn. 2 logn

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

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

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

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

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

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

DATALOGISK INSTITUT, 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

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 (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

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

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

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

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

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

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

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

Datastrukturer (recap)

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

Datastrukturer (recap)

Danmarks Tekniske Universitet

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

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

Danmarks Tekniske Universitet

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

Algoritmer og invarianter

DM02 Kogt ned. Kokken. Januar 2006

Sortering af information er en fundamental og central opgave.

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å

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

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

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

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

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

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

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

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

DM507 - Algoritmer og datastrukturer

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

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008

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

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

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

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Bevisteknikker (relevant både ved design og verifikation)

Danmarks Tekniske Universitet

Prioritetskøer og hobe. Philip Bille

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm4: Sorting algorithms - October 23, 2009

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

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

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

Sortering i lineær tid

Algoritmisk geometri

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

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

DM507 Algoritmer og datastrukturer

BRP Sortering og søgning. Hægtede lister

Analyse af algoritmer

Transkript:

Side af sider Opgave (%) Ja Nej n er O( n )? n er O(log n)? n er O(n )? n + er O(0n)? nlogn er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: nlogn logn (logn) (/) n n+logn (logn) logn n+logn nlogn (/) n Opgave (%) Nedenstående spørgsmål vedrører Randomized Quicksort på input af størrelse n. Worst-case antal kald til Partition proceduren Forventede antal kald til Partition proceduren Worst-case tid for Randomized Quicksort Forventede tid for Randomized Quicksort Θ(n) Θ(nlogn) Θ(n )

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 Algoritme Loop(n) i = 0 while i n j = 0 while j i j = j + i = i+ Algoritme Loop(n) s = 0 i = 0 while s n s = s+i i = i+ 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 = while i n j = while j i j = j i = i Algoritme Loop(n) for i = 0 to n j = 0 s = 0 while s i j = j + s = s+j Algoritme Loop(n) i = 0 s = 0 q = 0 while q n i = i+ s = s+i q = q +s Svar Loop: O((logn) ) Svar Loop: O(n n) Svar Loop: O( n)

Side af sider Opgave (%) 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,,,,, og 9 i den givne rækkefølge, startende med den tomme heap. 9 Opgave (%) Angiv hvordan nedenstående array ser ud efter anvendelsen af Build-Max-Heap for arrayet. 9 9 9 9

Side af sider Opgave 9 (%) 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 tre mindst betydende cifre. Opgave (%) Angiv resultatet af at anvende Partition(A,,) på nedenstående array. A 9 9 9 9 Opgave (%) Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter indsættelse af elementet. 9 9 9 9 Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter slettelse af elementet. 9 9 9 9

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æ. 9 9 9 9 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

Side af sider Opgave (%) Tegnhvordanenhashtabelderanvenderlinear probing serudefteratelementerne9,,,, og indsættes i den givne rækkefølge, når hashfunktionen er h(k) = k mod. 0 0 9 Opgave (%) Tegnhvordanenhashtabelderanvenderdobbelt hashing serudefteratelementerne,,, 0, og indsættes i den givne rækkefølge, når hashfunktionerne er h (k) = k mod, h (k) = +(k mod ), og hastabellen har størrelse. 0 0 0 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(c,d) union(a,c) union(b,e) union(a,f) a 0 b d 0 0 0 c e f

Side af sider Opgave (%) Betragtenlisteafnpar(x,w ),...,(x n,w n ), hvorx i ogw i erreelletalogx < x < < x n. For k n udgør (x,w ),...,(x k,w k ) et præfiks af listen, og vi definerer vægten af præfikset til at være w + +w k. Vi ønsker at vedligeholde den maksimale præfiksvægt for listen, dvs. maksimum taget over alle præfiksernes vægt. F.eks. har listen (,),(, ),(,),(, ) maksimal præfiksvægt +( )+ = 9. Betragt et søgetræ hvor hver knude v gemmer et par v.x og v.w, og knuderne er ordnet venstre-mod-højre efter stigende v.x. Derudover gemmes i v også v.sum og v.maxp, som er hhv. summen af alle vægtene i v s undertræ, og den maksimale præfiksvægt af dellisten gemt 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). v.left v v.right Svar v.sum = Svar v.maxp = v.left.sum + v.w + v.right.sum max{v.left.maxp,v.left.sum +v.w,v.left.sum +v.w +v.right.maxp} Opgave 9 (%) Betragt højrestående skakbræt med et hul. Vi ønsker at dække de resterende felter med dominobrikker. For at bevise at skakbrættet ikke kan dækkes med dominobrikker, betragter vi følgende transitionssystem, der indfanger antallet af ikkedækkede sorte (s) og hvide (h) felter: (hul) [s,h] [s,h ] Angiv en invariant, hvorfra det følger at de felter ikke kan dækkes med dominobrikker. Invariant: s < h

Side af sider Transitionssystem GCD Konfigurationer: {[m,n] heltal m,n m 0 n 0 m+n } [m,n] [n,m] if m < n [m,n] [m n,n] if m n n > 0 Opgave 0 (%) For hvert af nedenstående udsagn, angiv om de er en invariant for ovenstående transitionssystem GCD. Startkonfigurationen antages at være [n 0,m 0 ], hvor n 0 og m 0. I det følgende betegner gcd(x,y) den største fælles divisor i to heltal x og y. n 0 gcd(m,n) = gcd(m 0,n 0 ) m+n = m 0 +n 0 m+n m n gcd(m 0,n 0 ) Ja Nej Opgave (%) For hver af nedenstående funktioner, angiv om de er en termineringsfunktion for ovenstående transitionssystem GCD. µ(m,n) = m+n µ(m,n) = m+n µ(m,n) = m+n µ(m,n) = m µ(m,n) = n m Ja Nej

Side 9 af sider Hvis et array A[..n] indeholder et element A[j], der forekommer flere end n/ gange i A, så siges A[j] at være et majoritetselement. Algoritme Majoritet(A[..n]) Inputbetingelse : Array A[..n] med n heltal, hvor n og ét tal forekommer > n/ gange i A Outputkrav : j, hvor A[j] er majoritetselementet Metode : i ; j ; c ; {I} while i < n do i i+; if c = 0 then j i; c else if A[i] = A[j] then c c+ else c c Opgave (%) For hvert af nedenstående udsagn, angiv om de er en invariant I for ovenstående algoritme Majoritet. For k i, lad count(k,i) betegne antal forekomster af A[k] i A[..i], dvs. count(k,i) = {l l i A[l] = A[k]}. c = count(j,i) c count(j,i) c = i j count(k,i)+c i, for A[k] A[j] count(j,i) c i Ja Nej Opgave (%) For hver af nedenstående funktioner, angiv om de er en termineringsfunktion for ovenstående algoritme Majoritet. µ(n,i,j,c) = i µ(n,i,j,c) = n i c µ(n,i,j,c) = n i µ(n,i,j,c) = i j µ(n,i,j,c) = (n i) c Ja Nej

Side af sider Opgave (%) Nedenstående algoritme er en variation af binær søgning efter et element x i et sorteret array A[..n], hvor man ikke nødvendigvis vælger det midterste element i et delarray A[L..H] at sammenligne x med, men vælger et A[m] afhængig om værdien af x ligger tættest på A[L] eller A[H]. For at vise gyldigheden af algoritmen skal I L,H og I A være invarianter omkring variablerne L og H, og sammenhængen med A. Angiv invarianter hvormed gyldigheden af algoritmen kan bevises (bevis for invarianterne kræves ikke). Algoritme InterpolationSearch(A[..n], x) Inputbetingelse : Sorteret array A[..n] med n heltal og et heltal x, hvor n Outputkrav : r, hvor r = hvis x / A, ellers A[r] = x Metode : r ; L ; H n; {I} while r = { L { H do }} m min H,max L,L+ (x A[L])(H L) A[H] A[L] ; if x = A[m] then r m else if x < A[m] then H m else L m+ Svar I L,H : L H + n+ Svar I A : x / A[..L ] A[H +..n] (r = A[r] = x) 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 µ: H L+n r Opgave (%) Antag at en binær max-heap med n elementer er gemt i de første n indgange i et array af størrelsen N. Operationerne Insert og Extract-Max implementeres som for en standard binær max-heap, på nær Insert når n = N, hvor heapen først kopieres over i et nyt array af dobbelt størrelse N, dvs. N fordobles, hvorefter Insert operationen udføres som for en standard binær max-heap. Med en passende potentialefunktion kan man argumentere for at Insert tager amortiseret O(log n) tid og Extract-Max tager amortiseret O() tid. Angiv en sådan potentialefunktion. Svar Φ = n N +nlogn