36
1 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010

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

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

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

1

Algorithms and Architectures IRasmus Løvenstein Olsen (RLO)

Mm2: Rekursive algoritmer og rekurrens- October 12, 2010

Page 2: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 - 11/10)2. Recursive algorithms and recurrences (RLO - 12/10)3. Implementation of recursive algorithms (Self study - 25/10)4. Greedy algorithms, backtracking and recurrences (Self study - 26/10)5. Sorting algorithms (RLO - 1/11)6. Implementation of sorting algorithms (Self study - 2/11)7. Counting, probabilities and randomized algorithms (RLO - 8/11)8. Hash tables and Hashing (RLO - 10/11)9. Binary search trees, red-black trees and string matching (RLO - 15/11)10. Course round-up (RLO - 16/11)

2

Page 3: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

A B C

• Hvis n>1 så benyt denne procedure til at flytte n-1 skiver fra A til B• Flyt største skive, n fra A til C. • Hvis n>1 så benyt denne procedure til at flytte n-1 skiver fra B til C

5

Algoritme til løsning af Hanois tårne

NB: Angivelserne A, B, C er ikke faste angivelser

Page 6: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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

Θ(n)

Θ(n) Θ(n)

Θ(1)

Θ(1)

Θ(1)

T(n) = Θ(1) + Θ(n) + Θ(n) + Θ(1) + Θ(1) + Θ(n) = Θ(n)

Page 10: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

12

Kompleksitet af merge – sort algoritmen

• Tidskompleksiteten bliver følgelig

• 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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 - b, istedet for og vi er alle glade

• Eller hvad? ....

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

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

20

Vær opmærksom på algoritmen

• Antag vores tidligere kompleksitet

• 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☺)

nnTnT += )2/(2)(

Page 21: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 +≤

12 )1(,)1(2)( cTnkcTnT k =+≤

Page 24: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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)

)()/()(1)1(

ndbnaTnTT

+==

Page 28: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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

)()/()(1)1(

ndbnaTnTT

+==

Page 29: Mm2: Rekursive algoritmer og rekurrens - October 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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!

• 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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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, hvilket medfører at T(n) = O(nLog2(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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/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 12, 2010kom.aau.dk/~rlo/lectures/algoAndArchI_2010/mm2_full.pdf · 3 Dagsorden • Introduktion til rekursion og rekursive algoritmer

36

Opgaver

• Opgaver fra Cormen (2nd edition)• Opgave 4.1-1, 4.1-2, 4.1-3

• Opgaver fra Comen (3rd edition)• Opgave 4.3-2, 4.3-3, 4.3-4

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