02105 eksamensnoteruniguld.dk/wp-content/guld/dtu/algo1/algoritmer_og...3.4 lidt samlet om stakke og...

45
02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid .......................................... 4 2.2 Pladsforbrug ....................................... 5 2.3 Asymptotisk tid ..................................... 5 2.3.1 O-notation, øvre grænse ............................. 5 2.3.2 Ω-notation, nedre grænse ............................ 5 2.3.3 Θ-notation .................................... 5 2.3.4 Lidt regler / nyttige egenskaber ......................... 6 2.3.5 Eksperimentiel analyse .............................. 6 3 Datastrukture 7 3.1 Stak ............................................ 7 3.2 ............................................. 7 3.3 Hægtede lister ...................................... 8 3.4 Lidt samlet om stakke og køer .............................. 8 4 Prioritetskøer, træer og hobe 9 4.1 Prioritetskø ........................................ 9 4.2 Rodfæstede træer ..................................... 10 4.3 Binære træer ....................................... 10 4.4 Hob ............................................ 11 4.4.1 Algoritmer p˚ a hobe ............................... 12 4.4.2 Hobsortering ................................... 13 5 Uorienteree grafer 13 5.1 Repræsentation ...................................... 14 5.2 Dybdeførst ........................................ 16 5.2.1 Sammenhængskomponenter ........................... 16 5.3 Bredderførst ........................................ 17 5.4 Todelte grafer ....................................... 17 5.5 Grafalgoritmer ...................................... 18 6 Orienterede grafer 18 6.1 Repræsentation ...................................... 19 6.2 DAG ............................................ 20 6.3 Topologisk sortering ................................... 21 6.4 Stærke sammenhængskomponenter ........................... 22 6.5 Implicit graf ........................................ 23 1

Upload: others

Post on 16-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

02105

Eksamensnoter

Lasse HerskindS153746

12. maj 2017

Indhold

1 Sortering 3

2 Analyse af algoritme 42.1 Køretid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Pladsforbrug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Asymptotisk tid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.1 O-notation, øvre grænse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.2 Ω-notation, nedre grænse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.3 Θ-notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.4 Lidt regler / nyttige egenskaber . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.5 Eksperimentiel analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Datastrukture 73.1 Stak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Kø . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3 Hægtede lister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.4 Lidt samlet om stakke og køer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Prioritetskøer, træer og hobe 94.1 Prioritetskø . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 Rodfæstede træer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 Binære træer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.4 Hob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.4.1 Algoritmer pa hobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.4.2 Hobsortering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Uorienteree grafer 135.1 Repræsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.2 Dybdeførst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2.1 Sammenhængskomponenter . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.3 Bredderførst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.4 Todelte grafer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.5 Grafalgoritmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6 Orienterede grafer 186.1 Repræsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.2 DAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.3 Topologisk sortering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216.4 Stærke sammenhængskomponenter . . . . . . . . . . . . . . . . . . . . . . . . . . . 226.5 Implicit graf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1

Page 2: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7 Foren og find 237.1 Hurtig find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247.2 Hurtig forening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247.3 Vægtet forening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.4 Overblik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.5 Stikompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.6 Overblik 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.7 Dynamiske sammenhængskomponenter . . . . . . . . . . . . . . . . . . . . . . . . . 27

8 Mindste udspændende træ 278.1 Repræsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288.2 Snitegenskaber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288.3 Kredsegenskaber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298.4 Prims algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298.5 Kruskals algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

9 Korteste veje 329.1 Dijkstras algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339.2 Korteste veje pa DAG’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

10 Hashing 3510.1 Hægtet hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3510.2 Uniform hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3610.3 Overblik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3610.4 Hashfunktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3710.5 Lineær probering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

11 Binære søgetræer 3811.1 Nærmeste naboer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3911.2 Indsættelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4111.3 Predecessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4111.4 Sletning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4111.5 Algoritmer pa træer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11.5.1 Tip til rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.5.2 Størrelse af træ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.5.3 Længste sti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.5.4 Korteste sti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.5.5 Inorder trægennemløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.5.6 Preorder trægennemløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4411.5.7 Postorder trægennemløb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2

Page 3: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

1 Sortering

Husk:Flettesortering sortere to sorterede lister. Derudover er køretiden Θ(n ∗ log(n))

1 p r i v a t e s t a t i c i n t [ ] s o r t ( i n t [ ] numbers ) 2 i f ( numbers . l ength <= 1) 3 return numbers ;4 5 i n t m = numbers . l ength / 2 ;6 i n t [ ] A1 = Arrays . copyOfRange ( numbers , 0 , m) ;

3

Page 4: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7 i n t [ ] A2 = Arrays . copyOfRange ( numbers , m, numbers . l ength ) ;8 A1 = s o r t (A1 ) ;9 A2 = s o r t (A2 ) ;

10 re turn merge (A1 , A2 ) ;11 1213 p r i v a t e s t a t i c i n t [ ] merge ( i n t [ ] A1 , i n t [ ] A2) 14 i n t [ ] numbers2 = new i n t [ A2 . l ength + A1 . l ength ] ;15 i n t k = 0 , l = 0 ;16 f o r ( i n t a = 0 ; a < A1 . l ength + A2 . l ength ; a++) 17 i f ( k == A1 . l ength ) 18 numbers2 [ k + l ] = A2 [ l ] ;19 l ++;20 e l s e i f ( l == A2 . l ength ) 21 numbers2 [ k + l ] = A1 [ k ] ;22 k++;23 e l s e i f (A1 [ k ] < A2 [ l ] ) 24 numbers2 [ k + l ] = A1 [ k ] ;25 k++;26 e l s e 27 numbers2 [ k + l ] = A2 [ l ] ;28 l ++;29 30 31 return numbers2 ;32

2 Analyse af algoritme

2.1 Køretid

4

Page 5: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

2.2 Pladsforbrug

2.3 Asymptotisk tid

For alle typer er følgende gældende, vi opskriver dog blot med O

• O(g(n)) er en mængde af funktioner

• Opfat = som in

• f(n) = O(n2) er fint, men ikke O(n2) = f(n)

2.3.1 O-notation, øvre grænse

Definition:f(n) = O(g(n)) hvis f(n) ≤ c · g(n) for store nTo hurtige:

• 5 ∗ n2 = O(n2)

• 5 ∗ n2 = O(n3)

2.3.2 Ω-notation, nedre grænse

Definition:f(n) = Ω(g(n)) hvis f(n) ≥ c · g(n) for store nTo hurtige

• 5 ∗ n2 = Θ(n2)

• 5 ∗ n3 = Θ(n2)

2.3.3 Θ-notation

Definition:f(n) = Θ(g(n)) hvis f(n) er bade O(g(n)) og Ω(g(n))To hurtige

• 5 ∗ n2 = Θ(n2)

• 5 ∗ n2 + 7n = Θ(n2)

5

Page 6: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

2.3.4 Lidt regler / nyttige egenskaber

2.3.5 Eksperimentiel analyse

6

Page 7: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

3 Datastrukture

3.1 Stak

Alle operationer foregar i konstant tid Θ(1)

3.2 Kø

Alle operationer foregar i konstant tid Θ(1)

7

Page 8: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

3.3 Hægtede lister

Search er i lineær tid, insert og delete i konstant tid. Pladsen er lineær.

3.4 Lidt samlet om stakke og køer

8

Page 9: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

4 Prioritetskøer, træer og hobe

4.1 Prioritetskø

9

Page 10: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

4.2 Rodfæstede træer

4.3 Binære træer

10

Page 11: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

4.4 Hob

11

Page 12: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

4.4.1 Algoritmer pa hobe

12

Page 13: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

4.4.2 Hobsortering

5 Uorienteree grafer

13

Page 14: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

5.1 Repræsentation

14

Page 15: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

15

Page 16: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

5.2 Dybdeførst

5.2.1 Sammenhængskomponenter

16

Page 17: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

5.3 Bredderførst

5.4 Todelte grafer

For at undersøge om noget er en todelt graf kan du bruge BFS og sa tjekke om nogen af knudernei samme lag er forbundet med hinanden, hvis ikke er det en todelt graf.

17

Page 18: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

5.5 Grafalgoritmer

6 Orienterede grafer

18

Page 19: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

6.1 Repræsentation

19

Page 20: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

6.2 DAG

Husk!For at vurdere om noget er en DAG kan du bruge DFS eller BFS. Hvis du rammer en knude somallerede er markeret, men ikke er den forgænger, sa vil der være en kreds.

20

Page 21: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

6.3 Topologisk sortering

21

Page 22: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

6.4 Stærke sammenhængskomponenter

Husk!At hver knude ogsa er et stærkt sammenhængskomponent med sig selv

22

Page 23: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

6.5 Implicit graf

7 Foren og find

23

Page 24: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7.1 Hurtig find

7.2 Hurtig forening

24

Page 25: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7.3 Vægtet forening

7.4 Overblik

25

Page 26: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7.5 Stikompression

7.6 Overblik 2

26

Page 27: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

7.7 Dynamiske sammenhængskomponenter

8 Mindste udspændende træ

27

Page 28: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

8.1 Repræsentation

8.2 Snitegenskaber

28

Page 29: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

8.3 Kredsegenskaber

8.4 Prims algoritme

29

Page 30: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

30

Page 31: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

8.5 Kruskals algoritme

31

Page 32: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

9 Korteste veje

32

Page 33: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

9.1 Dijkstras algoritme

33

Page 34: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

34

Page 35: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

9.2 Korteste veje pa DAG’s

10 Hashing

10.1 Hægtet hashing

35

Page 36: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

10.2 Uniform hashing

10.3 Overblik

36

Page 37: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

10.4 Hashfunktioner

10.5 Lineær probering

37

Page 38: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11 Binære søgetræer

38

Page 39: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11.1 Nærmeste naboer

39

Page 40: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

40

Page 41: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11.2 Indsættelse

11.3 Predecessor

11.4 Sletning

Tid: O(h)

41

Page 42: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11.5 Algoritmer pa træer

11.5.1 Tip til rekursion

42

Page 43: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11.5.2 Størrelse af træ

11.5.3 Længste sti

1 LongestRoute ( root x )2 i f ( x == n u l l )3 return −1;4 5 return Math . max( LongestRoute ( x . l e f t ) , LongestRoute ( x . r i g h t ))+1;6

11.5.4 Korteste sti

1 Kor t e s t eS t i ( root x )2 i f ( x == n u l l )3 return −1;4 5 return Math . min ( Kor t e s t eS t i ( x . l e f t ) , Kor t e s t eS t i ( x . r i g h t ))+1;6

11.5.5 Inorder trægennemløb

Under

43

Page 44: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

11.5.6 Preorder trægennemløb

Venstre

11.5.7 Postorder trægennemløb

Højre

44

Page 45: 02105 Eksamensnoteruniguld.dk/wp-content/guld/DTU/Algo1/algoritmer_og...3.4 Lidt samlet om stakke og k˝er 8 4 Prioritetsk˝er, trˆer og hobe 4.1 Prioritetsk˝ 9 4.2 Rodfˆstede trˆer

45