36
1 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) , Jimmy Jessen Nielsen (JJE) Mm2: Rekursive algoritmer og rekurrens - October 10, 2008

Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

1

Algorithms and Architectures IRasmus Løvenstein Olsen (RLO) , Jimmy Jessen Nielsen (JJE)

Mm2: Rekursive algoritmer og rekurrens- October 10, 2008

Page 2: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

2

Algorithms and Architectures II

1. Introduction to analysis and design of algorithms(RLO)2. Recursive algorithms and recurrences (RLO)3. More about recurrences (RLO)4. Greedy algorithms, backtracking and more recurrences(RLO)5. Counting, probabilities and randomized algorithms (RLO)6. More sorting algorithms: Heap sort and quick sort (RLO)7. A little bit more about sorting - and more times for exercises (RLO)8. Hash tables, Hashing and binary search trees (RLO)9. Binary search trees, red-black trees (JJE)10. Red-black trees continued + string matching (JJE)

Page 3: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

3

Dagsorden

• Introduktion til rekursion og rekursive algoritmer• Divide and conquer taktikken• Eksempler på rekursive algoritmer

• Merge sort algoritmen• Fibonaccis tal• Hanois tårne• Factoriale tal• ….

• Substitutionsmetoden• Generelt om rekursive algoritmer• Opsummering og konklusion• Opgaver

Page 4: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

4

Hanois tårne

• Du må kun flytte en ring ad gangen • På hver eneste pind må der aldrig være en større ring på en mindre

• Spørgsmål: • Hvordan ser algoritmen ud?• Hvor lang tid tager det?

Page 5: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

5

Algoritme til løsning af Hanois tårne

• n-1 skiver flyttes (hvis n>1) fra pind A til pind C (ved hjælp af denne teknik).

• Skive n flyttes fra pind A til pind B. • De n-1 skiver flyttes atter (hvis n>1) fra pind C til pind B (igen ved

hjælp af denne teknik).

A B C

Page 6: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

6

Fibonacci tal

• Fibonacci’s tal først beskrevetaf Leonardo da Pisa

• Tal udviklingen er beskrevetsåledes at

1,1 21 == FF

1 13

5

2

8

3;21 ≥+= −− nFFF nnn

Page 7: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

7

Merge-sort algoritmen

• Baserer sig på merge algoritmen vi så på sidste gang

• Men lad os lige genopfriske hvordan den så udfør vi ser på hvordan vi kan sortere med den vha. rekursivitet

Page 8: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

8

Merge algoritmen – grafisk representation

…… …

2 4 5 7 1 2 3 6

2 4 5 7 8 1 2 3 6 8L R 1 4 5 7 1 2 3 6

2 4 5 7 8 1 2 3 6 8L R

1 2 2 7 1 2 3 6

2 4 5 7 8 1 2 3 6 8L R

1 2 5 7 1 2 3 6

2 4 5 7 8 1 2 3 6 8L R

Page 9: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

9

Merge algoritmen

Merge(A, p, q, r)

1 n1 = q-p+1 10 i=1

2 n2 = r-q 11 j=1

3 Make arrays L[1..n1+1], R[1..n2+1] 12 for k = p to r

4 for i = 1 to n1 13 do if L[i] ≤ R[j]

5 do L[i] = A[p+i-1] 14 then A[k] = L[i]

6 for j = 1 to n2 15 i = i+1

7 do R[j] = A[q+j] 16 else

8 L[n1+1] = Inf 17 j=j+1

9 R[n2+1] = Inf

Page 10: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

10

Merge-sort algoritmen – grafisk representation

1 2 2 3 4 5 6 7

2 4 5 7 1 2 3 6

2 5 4 7 1 3 2 6

5 2 4 7 1 3 2 6

Merge-sort

Merge-sort

Merge-sort

Talrække (input)

Page 11: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

11

Merge-sort

Merge-sort(A,p,r) Cost Tid

1 if p<r c1 Θ(1)

2 then q=(p+r)/2 c2 Θ(1)

3 Merge-Sort(A,p,q) c3 T(n/2)

4 Merge-Sort(A,q+1,r) c4 T(n/2)

5 Merge(A,p,q,r) c5 Θ(n)

p = start af arrayr = slut af array

Page 12: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

12

Kompleksitet af merge – sort algoritmen

• Konklusion

• Kan også skrives som

• Men hvorfor det sidste?

⎩⎨⎧

>Θ+=Θ

=1;)()2/(21;)1(

)(nnnTn

nT

))(log()( 2 nnnT Θ=

Page 13: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

13

Rekurens træ

Husk at vi her antager at opgaverne kommer som n = 2k

cn

cn/2 cn/2

cn/4 cn/4 cn/4 cn/4

c c c c c c c c

Log2(n)

n

cn

cn

cn

cn

Page 14: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

14

Dagsorden

• Introduktion til rekursion og rekursive algoritmer• Divide and conquer taktikken• Eksempler på rekursive algoritmer

• Merge sort algoritmen• Fibonaccis tal• Hanois tårne• Factoriale tal• ….

• Substitutionsmetoden• Generelt om rekursive algoritmer• Opsummering og konklusion• Opgaver

Page 15: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

15

Substitutions metoden

• Kan kun anvendes på simplere algoritmer hvor vi er i stand til at gætte en løsning, eller løsningsstruktur

• Metoden baserer sig på at udnytte gættet til at vise løsningen

• Metoden består af to trin1. Gæt en form af løsningen2. Brug af matematisk induktion til at finde konstanter og vis at

løsningen virker

Page 16: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

16

Eksempel med gætte metoden

• Bestem øvre eller nedre grænse for en rekurrent algoritme med kompleksitet

• Et gæt vil være T(n) = O(nlog2(n))

• Metoden går nu ud på at bevise T(n) ≤ cnLog2(n)

• Men er det nu alt?

nnTnT += )2/(2)(

Page 17: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

17

Nogle potentielle problemer….

• Ved induktiv bevisførelse skal vi nu vise løsningen holder

• Først finder vi et startspunkt, f.eks. n0 = 1• Med T(1) =1 som den grænsende funktion får vi• T(n=1) ≤ cnLog2(n) = cLog2(1) = 0• Men 1≥0 !!! Så n0 = 1 er ikke en god basis for bevis

• Men hvis vi vælger et n ≥ n0 > 1, f.eks. n = 2 og n = 3

• Dermed får vi følgende krav til konstanten c• T(2) = 4 ≤ 2cLog2(2)• T(3) = 5 ≤ 3cLog2(3)• Dvs. at c ≥2

Page 18: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

18

Alternative gæt

• Hvad nu hvis vi har noget der ligner noget vi kender….?

• Konklusion:• Hvis vi kan omformulere et problem til noget vi kender,

kan vi også nemmere sige noget om dets kompleksitet

nknTnT ++= )2/(2)(

Page 19: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

19

Et andet eksempel

• Eksempel

• Et gæt kunne være løsning O(n)• Så vi prøver at vise T(n) ≤ cn med et passende valg af c

• Konklusion:• Med passende valg af funktion og konstanter kan vi vise at

T(n) ≤ cn, og vi er alle glade

• Eller er vi altid det?

1)2/()2/()( ++= nTnTnT

Page 20: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

20

Vær opmærksom på algoritmen

• Antag vores tidligere træ

• Hvad nu hvis vi gætter at T(n) ≤ cn, dvs. T(n) = O(n)?

• Konklusion:• Vær opmærksom på hvad i ved om algoritmen.

Vi kan ikke bare ”snyde” os til en simplere algoritme….(men vi kan godt snyde os selv☺)

nknTnT ++= )2/(2)(

Page 21: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

21

Ændring af variable

• I nogle tilfælde ligner funktionen ikke helt, men alligevel lidt …..F.eks.

• Kan der gøres noget ved den så den ligner endnu mere?• Prøv m = log2(n), og se bort fra afrundingsfunktionen

• Hvis vi nu siger at S(m) = T(2m), så får vi noget vi kender

• Endelig kan vi også transformere kompleksiteten, således at

)(log)(2)( 2 nnTnT +=

mTT mm += )2(2)2( 2/

mmTmS += )2/(2)(

)))(Log(Log)(Log())(Log()()2()(

222

2

nnOmmOmSTnT m

====

Page 22: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

22

Dagsorden

• Introduktion til rekursion og rekursive algoritmer• Divide and conquer taktikken• Eksempler på rekursive algoritmer

• Merge sort algoritmen• Fibonaccis tal• Hanois tårne• Factoriale tal• ….

• Substitutionsmetoden• Generelt om rekursive algoritmer• Opsummering og konklusion• Opgaver

Page 23: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

23

Ekspandering af rekurrens

• Vi starter igen med følgende kompleksitet

• Efter induktion kan vi nu se at

• Antag at n sker i 2 potens, såsom 2k, dvs. n = 2k k=Log2(n), så kan kompleksiteten også skrives som

ncnTnT 2)2/(2)( +≤

nicnTnT ii2)2/(2)( +≤

)(Log)( 221 nncncnT +≤

Page 24: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

24

Mere generelt om den type kompleksitet

• Den generelle forskrift for kompleksiteten

• Antag at n = bk, dvs. n forekommer i potenser af k med base b• Kan derfor også udskrives som en sum

• Note: For merge-sort algoritmen er a = b = 2, og d(n) = cn

)()/()(1)1(

ndbnaTnTT

+==

∑−

=

−+=1

0

)()(k

j

jkjk bdaanT

Page 25: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

25

Homogene og partikulære løsninger

• Homogene løsning• Udtrykker prisen for at løse et delproblem• Eksakt løsning når d(n)=0 for alle n

• Partikulære løsning• Udtrykker prisen for at danne og kombinere delproblemerne• Hvis homogene løsning er større end partikulære løsning, så vokser

kompleksiteten i samme grad som den homogene løsning• Hvis den partikulære løsning vokser med mere end nε for ε>0, så vokser den

partikulære løsning med graden af d(n)• Hvis d(n) vokser med samme hastighed som den homogene løsning, eller med

maksimalt logk(n), så vokser den partikulære løsning med log(n) x d(n)

∑−

=

−+=1

0

)()(k

j

jkjk bdaanT

Homogeneløsning

Partikulæreløsning

Page 26: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

26

Nogle flere gode råd som konsekvens

• Hvis den homogene løsning er størst vil en hurtigere måde at kombinere delproblemerne praktisk taget ingen effekt have.Derfor bør man således finde en måde at dele problemet i endnu mindre problemer, der hurtigere kan løses

• Hvis den partikulære løsning er størst vil en formindskelse i kompleksiteten af at splitte og/eller kombinere delproblemer have størst effekt. • For eksempel vil en reducering i kompleksitet af den del af algoritmen

der opdeler arrayet A i merge-sort til en nær lineær funktion, f.eks. d(n)=cn0.9, helt sikkert reducere den samlede kompleksitet.

• NB: Der gemmer sig nok en nobel pris eller lignende til den der kan opdage en merge algoritme med en sådan kompleksitet!!

Page 27: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

27

Kogebog for multiplikative funktioner

• En funktion er benævnt multiplikativ hvis f(xy) = f(x)f(y)

• Overvej1. a > d(b): giver at den partikulære og homogene løsning er ens, fordi (1)

bliver O(ak) ~ O(nlogb(a)). I det tilfælde afhænger kompleksiteten mest af hvorledes problemet bliver opdelt, og ikke så meget af løsningen.

2. a = d(b): bliver udtrykket O(nLogb(d(b))Logb(n)) og i tilfældet med d(n)=nα, bliver det til O(nαLogb(n))

3. a < d(b): giver at den partikulære løsning dominerer, og dermed O(d(b)k) ~ O(nlogb(d(b))). I det tilfælde give det mening at se på at minimere d(n) og/eller a og b. Et specialtilfælde hvor d(n)=nα, giver en løsning O(nα) eller O(d(n))

1)(

)()(1

0 −

−=∑

=

bda

bdabdakkk

j

jkj (1)

Page 28: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

28

Nogle eksempler #1

• Sammenlign de følgende kompleksiteter, med T(1)=11. T(n) = 4T(n/2) + n2. T(n) = 4T(n/2) + n2

3. T(n) = 4T(n/2) + n3

• I alle tre tilfælde gælder følgende:• a = 4• b = 2• Den homogene løsning er n2 pga. antagelsen om n = bk

• k = logb(n) gør at ak = alogb(n) = nlogb(a)

• Log2(4) = 2 giver et n2

Page 29: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

29

Nogle eksempler #2

For 1) T(n) = 4T(n/2) + n:• d(n) = n betyder at d(b=2) = 2• Fordi a = 4 > d(b=2), er løsningen n2, dvs. T(n) er O(n2)

For 2) T(n) = 4T(n/2) + n2:• d(n) = n2, hvilket betyder at d(b=2) = 4• Fordi a = 4 = d(b=2), er løsningen nLogb(d(b))Logb(n)=n2Log2(n)

For 3) T(n)= 4T(n/2) + n3:• d(n) = n3, hvilket betyder at d(b=2) = 8• Fordi a = 4 < d(b=2), er løsningen af O(nLogb(d(b))) = O(n3)

Page 30: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

30

Andre funktioner

• Eksempel• T(1) = 1• T(n) = 3T(n/2)+2n1.5

• 2n1.5 er ikke multiplikativ, men n1.5 er (se tavlenoter)

• Prøv derfor med U(n) = T(n)/2 for alle n

• U(1) = ½• U(n) = 3U(n/2)+n1.5

• Hvis U(1) var 1, ville løsningen være nlog2(3)<n1.59

• Vi kan nu vise at U(1) = ½ er mindre end n1.59/2, dermed O(n1.59)• Fordi d(b) = b1.5 = 2.83 < a er løsningen O(ak) = O(n1.59) (ak = nLogb(a))

Page 31: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

31

Et andet eksempel

• Betragt• T(1) = 1• T(n) = 2T(n/2) + nLogb(n)

• Homogen løsning er n, fordi a = b = 2

• Problemet er d(n) = nLogb(n), derfor skal den partikulære løsning beregnes ”manuelt”

• Løsningen er således at den partikulære er O(nLog2(n)), der er større end den homogene løsning, er derfor T(n)

)1(2

)2log(22)(

1

1

0

1

0

+=

=

=

−−−

=

− ∑∑kk

bda

k

k

j

jkjkjk

j

jkj

Page 32: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

32

Dagsorden

• Introduktion til rekursion og rekursive algoritmer• Divide and conquer taktikken• Eksempler på rekursive algoritmer

• Merge sort algoritmen• Fibonaccis tal• Hanois tårne• Factoriale tal• ….

• Substitutionsmetoden• Generelt om rekursive algoritmer• Opsummering og konklusion• Opgaver

Page 33: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

33

Opsummering og konklusion på forelæsning

• Rekursive algoritmer bruges i forskellige situationer hvor samme principielle problem kan løses igen og igen• Hanois tårne• Fibonacci tal• Merge-sort algoritme

• Vi så på kompleksiten af rekursive algoritmer af typen

• Løsninger af denne type, baseret på• Substitution med gæt• Ændring af variable til noget der ligner tidligere• Generel omskrivning og analyse af rekursive algoritmer

• Homogene og partikulære løsninger• Omskrivninger til standard model

⎩⎨⎧

>Θ+=Θ

=1;)()2/(21;)1(

)(nnnTn

nT

Page 34: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

34

Og endnu en at gå hjem på☺

http://xkcd.com/

Page 35: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

35

Dagsorden

• Introduktion til rekursion og rekursive algoritmer• Divide and conquer taktikken• Eksempler på rekursive algoritmer

• Merge sort algoritmen• Fibonaccis tal• Hanois tårne• Factoriale tal• ….

• Substitutionsmetoden• Generelt om rekursive algoritmer• Opsummering og konklusion• Opgaver

Page 36: Mm2: Rekursive algoritmer og rekurrens - October 10, 2008kom.aau.dk/~rlo/lectures/algoAndArch08_fall_3sem/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

36

Opgaver

• Opgaver fra Cormen• Opgave 4.1-1, 4.1-2, 4.1-3

• Opgaver fra Aho, Hopcroft og Ullman• Opgave 9.1, 9.2, 9.3, 9.4