Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) n er O(n log n)? n n er O(n )? Ja Nej n er O(n log n)? n + n log n er O(n n)? n + n er O(n )? Opgave ( %) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) n + log n n /n /n n n (log n) n + log n n Opgave ( %) Angiv for hver af nedenstående algoritmer udføreselstiden som funktion af n i O-notation. Algoritme Loop(n) x 0 for i to n do for j i downto do x x + j Algoritme Loop(n) x 0 for i to n do for j to i do for k to n do x x + i + j + n Algoritme Loop(n) i j while j n do i i + j j + i Svar Loop: O(n ) Svar Loop: O(n ) Svar Loop: O( n)
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) Angiv for hver af nedenstående binære træer om det er en lovlig binær heap eller et lovligt binært søgetræ. (I) (II) (III) (IV) (I) (II) (III) (IV) Hverken heap Heap Søgetræ eller søgetræ Opgave ( %) Tegn hvordan nedenstående binære heap ser ud efter indsættelse af elementet. 9 9 Opgave ( %) Tegn hvordan nedenstående binære heap ser ud efter en removemin operation. 9 9
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter indsættelse af elementet 9. 9 Tegn hvordan nedenstående ubalancerede binære søgetræ ser ud efter slettelse af elementet. Opgave ( %) Tegn hvordan nedenstående AVL-træ ser ud efter indsættelse af elementet. 0 0
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave 9 ( %) Tegn hvordan nedenstående (,) træ ser ud efter indsættelse af elementet 9. 9 Opgave ( %) Tegn hvordan nedenstående (,) træ ser ud efter slettelse af elementet. Opgave ( %) Nedenstående er et rød-sort træ (dobbeltcirkler angiver røde knuder). Tegn det korresponderende (,) træ. 9 9 9 0 9 0 Opgave ( %) Nedenstående er en hashtabel hvor der er anvendt linear probing. Den anvendte hashfunktion er h(k) = k mod. Tegn hvordan hashtabellen ser ud efter at k = 0 indsættes. 0 9 9 9 0 9 9 0 9
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) Tegn hvordan hashtabelen for mængden {, 9,,,,, } ser ud, når der bruges hashfunktionen h(k) = k mod og der anvendes kædede lister til at håndtere kollisioner. 0 9,,, Opgave ( %) Angiv for hver af nedenstående sekvenser om den angiver et preorder, postorder, eller et inorder gennemløb af nedenstående binære træ. C A E B D F A E C C A B E D F C A E B D F A B C D E F B A D F E C B D F Hverken preorder, postorder, eller Preorder Postorder Inorder inorder Opgave ( %) Tegn det entydige træ hvor henholdsvis et preorder og postorder gennemløb giver: A Preoder Postorder A B C D E F G B E D F C G A B D C F G E
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) Tegn hvordan nedenstående union-find datastruktur ser ud efter find(), når der anvendes stikomprimering. Opgave ( %) Tegn hvordan nedenstående union-find datastruktur ser ud efter union(,) efterfulgt af union(,), når der anvendes union-by-size heuristikken. 9 9
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave ( %) Algoritme Loop(n) Inputbetingelse : heltal n Outputkrav : Metode : i ; j ; {I} while i < n do i i ; j j + For hver af nedenstående udsagn, angiv om de er en invariant I for ovenstående algoritme. Ja i Nej i n i n i = j i = j Opgave 9 ( %) Algoritme Loop(n) Inputbetingelse : heltal n Outputkrav : Metode : i ; while i < n do i i For hver af nedenstående funktioner, angiv om de er en termineringsfunktion for ovenstående algoritme. µ(i, n) = n µ(i, n) = i µ(i, n) = n i µ(i, n) = log n log i µ(i, n) = n i Ja Nej
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave 0 ( %) Nedenstående algoritme beregner n! = n (n ) (n ). For at vise gyldigheden af algoritmen skal I i og I p være invarianter omkring variablerne i og p. Angiv invarianter hvormed gyldigheden af algoritmen kan bevises (bevis for invarianterne kræves ikke). Algoritme Sum(A) Inputbetingelse : heltal n Outputkrav : p = n! Metode : p ; i ; {I i I p } while i < n do i i + ; p p i Svar I i : i n Svar I p : p = 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 µ: n i