Sortering. Eksempel: De n tal i sorteret orden
|
|
- Laura Carlsen
- 6 år siden
- Visninger:
Transkript
1 Sortering 1 / 34
2 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34
3 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger, adresselister i telefoner,... ). Dette gælder både for mennesker og for computere. Sortering er ofte en byggesten i algoritmer for andre problemer. 2 / 34
4 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger, adresselister i telefoner,... ). Dette gælder både for mennesker og for computere. Sortering er ofte en byggesten i algoritmer for andre problemer. Sortering af information er en fundamental og central opgave. 2 / 34
5 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger, adresselister i telefoner,... ). Dette gælder både for mennesker og for computere. Sortering er ofte en byggesten i algoritmer for andre problemer. Sortering af information er en fundamental og central opgave. Mange algoritmer er udviklet: Insertionsort, Selectionsort, Bubblesort, Mergesort, Quicksort, Heapsort, Radixsort, Countingsort,... Vi skal møde alle ovenstående i dette kursus. 2 / 34
6 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Kommentarer: Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus altid bruge stigende (mere præcist: ikke-faldende). Skal man sortere faldende, skal alle sammenligninger bare vendes. 3 / 34
7 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Kommentarer: Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus altid bruge stigende (mere præcist: ikke-faldende). Skal man sortere faldende, skal alle sammenligninger bare vendes. Man sorterer ofte elementer sammensat af en sorteringsnøgle samt yderligere information. Sorteringsnøglen kan være et tal, eller andet der kan sammenlignes (f.eks. strenge/ord). Vi viser i dette kursus blot elementer som rene tal. 3 / 34
8 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Kommentarer: Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus altid bruge stigende (mere præcist: ikke-faldende). Skal man sortere faldende, skal alle sammenligninger bare vendes. Man sorterer ofte elementer sammensat af en sorteringsnøgle samt yderligere information. Sorteringsnøglen kan være et tal, eller andet der kan sammenlignes (f.eks. strenge/ord). Vi viser i dette kursus blot elementer som rene tal. Vi vil antage at input ligger i et array. Mange sorteringsalgoritmer vil også kunne implementeres når input er en lænket liste. 3 / 34
9 Insertionsort Bruges af mange når man sorterer en hånd i kort: 4 / 34
10 Insertionsort Bruges af mange når man sorterer en hånd i kort: Samme idé udført på tal i et array: 4 / 34
11 Insertionsort Bruges af mange når man sorterer en hånd i kort: Samme idé udført på tal i et array: Argument for korrekthed: Del af array til venstre for sorte felt er altid sorteret. Denne del udvides med én hele tiden ( algoritmen stopper, med alle elementer sorteret). 4 / 34
12 Insertionsort Som pseudo-kode: 5 / 34
13 Køretid for Insertionsort Analyse: Her er t j hvor mange gange testen i den indre while-løkke udføres (dvs. t j 1 er hvor mange gange løkken kører, hvilket er hvor mange elementer det j te element skal forbi under indsættelsen). 6 / 34
14 Køretid for Insertionsort Analyse: Her er t j hvor mange gange testen i den indre while-løkke udføres (dvs. t j 1 er hvor mange gange løkken kører, hvilket er hvor mange elementer det j te element skal forbi under indsættelsen). Best case: t j = 1 for alle j. Samlet tid c n. 6 / 34
15 Køretid for Insertionsort Analyse: Her er t j hvor mange gange testen i den indre while-løkke udføres (dvs. t j 1 er hvor mange gange løkken kører, hvilket er hvor mange elementer det j te element skal forbi under indsættelsen). Best case: t j = 1 for alle j. Samlet tid c n. Worst case: t j = j for alle j. Samlet tid c n 2, da n j = j=1 (n + 1)n 2 = n2 + n 2 2n2 2 = n2. 6 / 34
16 Selectionsort En anden simpel og naturlig sorteringsalgoritme: S = input S = tom liste Repeat: find mindste element x i S flyt x fra S til enden af S 7 / 34
17 Selectionsort En anden simpel og naturlig sorteringsalgoritme: S = input S = tom liste Repeat: find mindste element x i S flyt x fra S til enden af S Klart korrekt. 7 / 34
18 Selectionsort En anden simpel og naturlig sorteringsalgoritme: S = input S = tom liste Repeat: find mindste element x i S flyt x fra S til enden af S Klart korrekt. Køretid? 7 / 34
19 Selectionsort En anden simpel og naturlig sorteringsalgoritme: S = input S = tom liste Repeat: find mindste element x i S flyt x fra S til enden af S Klart korrekt. Køretid? I alt n gange findes mindste element i S. Simpel metode er lineær søgning tid c (n + (n 1) + (n 2) + + 1) c n 2. 7 / 34
20 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 8 / 34
21 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 8 / 34
22 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 Vi kan naturligvis sortere. 8 / 34
23 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 Vi kan naturligvis sortere. Men hurtigere at flette (merge): Repeat: Flyt det mindste af de to forreste elementer 8 / 34
24 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 Vi kan naturligvis sortere. Men hurtigere at flette (merge): Repeat: Flyt det mindste af de to forreste elementer 8 / 34
25 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 Vi kan naturligvis sortere. Men hurtigere at flette (merge): Repeat: Flyt det mindste af de to forreste elementer Tid: c n, hvor n = antal elementer i alt. 8 / 34
26 Merge Input: To sorterede rækker 2,4,5,7 1,2,3,6 Output: De samme elementer i én sorteret række 1,2,2,3,4,5,6,7 Vi kan naturligvis sortere. Men hurtigere at flette (merge): Repeat: Flyt det mindste af de to forreste elementer Tid: c n, hvor n = antal elementer i alt. Korrekthed: Merge kan ses som en udgave af Selectionsort. 8 / 34
27 Merge Som pseudo-kode, med to rækker A[p... q] and A[q r]: 9 / 34
28 Mergesort Mergesort: opbyg længere og længere sorterede dele af input ved gentagen brug af merge: 10 / 34
29 Mergesort Mergesort: opbyg længere og længere sorterede dele af input ved gentagen brug af merge: Tid: 10 / 34
30 Mergesort Mergesort: opbyg længere og længere sorterede dele af input ved gentagen brug af merge: Tid: Hver merge bruger højst c n 1 tid, hvor n 1 er antal elementer der merges. 10 / 34
31 Mergesort Mergesort: opbyg længere og længere sorterede dele af input ved gentagen brug af merge: Tid: Hver merge bruger højst c n 1 tid, hvor n 1 er antal elementer der merges. Så alle merge-operationer i ét lag bruger tilsammen højst c (n 1 + n ) = c n. Dette gælder alle lagene. 10 / 34
32 Mergesort Mergesort: opbyg længere og længere sorterede dele af input ved gentagen brug af merge: Tid: Hver merge bruger højst c n 1 tid, hvor n 1 er antal elementer der merges. Så alle merge-operationer i ét lag bruger tilsammen højst c (n 1 + n ) = c n. Dette gælder alle lagene. Der er i alt log 2 n lag, så den samlede tid er højst c n log 2 n. 10 / 34
33 Mergesort Hvorfor er der log 2 n merge-lag? 11 / 34
34 Mergesort Hvorfor er der log 2 n merge-lag? Antal sorterede lister efter k merge-lag (antag n er en potens af 2): Antal lister k n 0 n/2 1 n/2 2 2 n/ n/2 k k 11 / 34
35 Mergesort Hvorfor er der log 2 n merge-lag? Antal sorterede lister efter k merge-lag (antag n er en potens af 2): Antal lister k n 0 n/2 1 n/2 2 2 n/ n/2 k k Algoritmen stopper når der er én sorteret liste: n/2 k = 1 n = 2 k log 2 n = k 11 / 34
36 Mergesort Hvis n ikke er en potens af 2? 12 / 34
37 Mergesort Hvis n ikke er en potens af 2? Algoritmen merger i hvert lag så mange par, den kan, og der bliver evt. én liste som ikke merges (denne er med som liste på næste lag). F.eks. bliver 12 lister bliver til 6 lister mens 13 (= ) lister til 7 (= 6 + 1) lister. 12 / 34
38 Mergesort Hvis n ikke er en potens af 2? Algoritmen merger i hvert lag så mange par, den kan, og der bliver evt. én liste som ikke merges (denne er med som liste på næste lag). F.eks. bliver 12 lister bliver til 6 lister mens 13 (= ) lister til 7 (= 6 + 1) lister. Generelt: Hvis der er x lister før et merge-lag, er der x/2 lister efter. 12 / 34
39 Mergesort Hvis n ikke er en potens af 2? Algoritmen merger i hvert lag så mange par, den kan, og der bliver evt. én liste som ikke merges (denne er med som liste på næste lag). F.eks. bliver 12 lister bliver til 6 lister mens 13 (= ) lister til 7 (= 6 + 1) lister. Generelt: Hvis der er x lister før et merge-lag, er der x/2 lister efter. Se på to input størrelse n og n, med n n. Da x/2 er en voksende funktion af x, kan antallet af lister i hvert lag ikke være større for n end for n. Derfor kan antallet af merge-lag (før algoritmen når ned på én liste) ikke være større for n end for n. 12 / 34
40 Mergesort Hvis n ikke er en potens af 2? Algoritmen merger i hvert lag så mange par, den kan, og der bliver evt. én liste som ikke merges (denne er med som liste på næste lag). F.eks. bliver 12 lister bliver til 6 lister mens 13 (= ) lister til 7 (= 6 + 1) lister. Generelt: Hvis der er x lister før et merge-lag, er der x/2 lister efter. Se på to input størrelse n og n, med n n. Da x/2 er en voksende funktion af x, kan antallet af lister i hvert lag ikke være større for n end for n. Derfor kan antallet af merge-lag (før algoritmen når ned på én liste) ikke være større for n end for n. Sæt n til mindste potens af to, som er n. Som set tidligere er der præcis log 2 n merge-lag for n, og dermed højst så mange merge-lag for n. Så der er log 2 n merge lag for generelt n. n 7 8 = = log 2 (n) / 34
41 Mergesort Mergesort som pseudo-kode, i en variant formuleret med rekursion: Første kald er Merge-Sort(A,1,n). 13 / 34
42 Quicksort Mergesort: Del input op i to dele X og Y (trivielt) Sorter hver del for sig (rekursion) Bland de to sorterede dele til én sorteret del (reelt arbejde) Basistilfælde: n 1 14 / 34
43 Quicksort Mergesort: Del input op i to dele X og Y (trivielt) Sorter hver del for sig (rekursion) Bland de to sorterede dele til én sorteret del (reelt arbejde) Basistilfælde: n 1 Quicksort: Del input op i to dele X og Y så X Y (reelt arbejde) Sorter hver del for sig (rekursion) Returner X efterfulgt af Y (trivielt) Basistilfælde: n 1 [Hoare, 1960] 14 / 34
44 Quicksort Som pseudo-kode: 15 / 34
45 Partition Hvordan lave partition i to dele X Y? 16 / 34
46 Partition Hvordan lave partition i to dele X Y? Vælg element x fra input at opdele efter (her sidste element i array-del). Opbyg de to dele X Y under et gennemløb af array ud fra flg. princip: 16 / 34
47 Partition Hvordan lave partition i to dele X Y? Vælg element x fra input at opdele efter (her sidste element i array-del). Opbyg de to dele X Y under et gennemløb af array ud fra flg. princip: Hvordan tage et skridt under gennemløb? 16 / 34
48 Partition Hvordan lave partition i to dele X Y? Vælg element x fra input at opdele efter (her sidste element i array-del). Opbyg de to dele X Y under et gennemløb af array ud fra flg. princip: Hvordan tage et skridt under gennemløb? 16 / 34
49 Partition Et eksempel på gennemløb: 17 / 34
50 Partition Et eksempel på gennemløb: Tid: 17 / 34
51 Partition Et eksempel på gennemløb: Tid: O(n). 17 / 34
52 Quicksort køretid 18 / 34
53 Quicksort køretid Hænger på, hvordan partitions gennem rekursionen deler input. 18 / 34
54 Quicksort køretid Hænger på, hvordan partitions gennem rekursionen deler input. To ekstremer: 18 / 34
55 Quicksort køretid Hænger på, hvordan partitions gennem rekursionen deler input. To ekstremer: Hvis alle partitions er helt balancerede: O(n log n) (samme analyse som for Mergesort). Hvis alle partitions er helt ubalancerede: O(n + (n 1) + (n 2) ) = O(n 2 ). Man kan vise at dette er henholdsvis best case og worst case for Quicksort. 18 / 34
56 Quicksort køretid I praksis meget ofte tæt på best case. Dog er sorteret input worst case for ovenstående partition (brug ikke den i praksis). Mere robuste partition: vælg opdelingselement x som midterelementet, medianen af flere elementer, et tilfældigt element, eller medianen af flere tilfældigt valgte elementer. Quicksort er inplace: bruger ikke mere plads end input-array et. Kode effektiv i praksis. En godt implementeret Quicksort er ofte bedste all-round sorteringsalgoritme (og valgt i mange biblioteker, f.eks. Java og C++/STL). 19 / 34
57 Heapsort En Heap er: 20 / 34
58 Heapsort En Heap er: et binært træ 20 / 34
59 Heapsort En Heap er: et binært træ med heap-orden 20 / 34
60 Heapsort En Heap er: et binært træ med heap-orden og heap-facon 20 / 34
61 Heapsort En Heap er: et binært træ med heap-orden og heap-facon udlagt i et array 20 / 34
62 Heapsort En Heap er: et binært træ med heap-orden og heap-facon udlagt i et array (Note: heap bruges også om et hukommelsesområde brugt til allokering af objekter under et programs udførsel. De to anvendelser er urelaterede.) [Williams, 1964] 20 / 34
63 Binært træ Et binært træ er enten eller det tomme træ en knude v (evt. med indhold af data) samt to undertræer (et højre og et venstre). 21 / 34
64 Binært træ Et binært træ er enten eller det tomme træ en knude v (evt. med indhold af data) samt to undertræer (et højre og et venstre). Knuden v kaldes også rod for træet. Roden af et (ikke-tomt) undertræ af v kaldes for et barn af v, og v kaldes dennes forælder. Hvis begge v s undetræer er tomme, kaldes v et blad. 21 / 34
65 Binært træ Dybde af knude = antal kanter til rod Højde af knude = max antal kanter til blad Højde af træ = højde af dets rod Fuldt (complete) binært træ = træ med alle blade i samme dybde. 22 / 34
66 Binært træ Dybde af knude = antal kanter til rod Højde af knude = max antal kanter til blad Højde af træ = højde af dets rod Fuldt (complete) binært træ = træ med alle blade i samme dybde. Et fuldt binært træ af højde h har h h = 2 i = 2 h+1 1 i=0 knuder (formel A.5 side 1147), heraf 2 h blade. 22 / 34
67 Heaporden Et binært træ med nøgler i alle knuder er max-heapordnet hvis det for alle par af knuder v og u, hvor v er forældre til u, gælder nøgle i v nøgle i u 23 / 34
68 Heaporden Et binært træ med nøgler i alle knuder er max-heapordnet hvis det for alle par af knuder v og u, hvor v er forældre til u, gælder nøgle i v nøgle i u NB: dubletter er tilladt (ikke vist) 23 / 34
69 Heaporden Et binært træ med nøgler i alle knuder er max-heapordnet hvis det for alle par af knuder v og u, hvor v er forældre til u, gælder nøgle i v nøgle i u NB: dubletter er tilladt (ikke vist) Det er min-heapordnet hvis der gælder nøgle i v nøgle i u 23 / 34
70 Heapfacon Et binært træ har heapfacon hvis alle lag i træet er helt fyldte, undtagen det sidste lag, hvor alle knuder findes længst til venstre. (Specielt har et fuldt træ heapfacon). 24 / 34
71 Heapfacon Et binært træ har heapfacon hvis alle lag i træet er helt fyldte, undtagen det sidste lag, hvor alle knuder findes længst til venstre. (Specielt har et fuldt træ heapfacon). For et træ af heapfacon af højde h med n knuder: n > antal knuder i fuldt træ af højde h 1 = 2 h 1 24 / 34
72 Heapfacon Et binært træ har heapfacon hvis alle lag i træet er helt fyldte, undtagen det sidste lag, hvor alle knuder findes længst til venstre. (Specielt har et fuldt træ heapfacon). For et træ af heapfacon af højde h med n knuder: n > antal knuder i fuldt træ af højde h 1 = 2 h 1 n > 2 h 1 n + 1 > 2 h log 2 (n + 1) > h 24 / 34
73 Heap udlagt i et array Et binært træ i heapfacon kan naturligt udlægges i et array ved at tildele array-indekser til knuder ved et top-down, venstre-til-højre gennemløb af træets lag: 25 / 34
74 Heap udlagt i et array Et binært træ i heapfacon kan naturligt udlægges i et array ved at tildele array-indekser til knuder ved et top-down, venstre-til-højre gennemløb af træets lag: Navigering mellem børn og forældre i array-versionen kan udføres ved simple beregninger: Knuden på plads i har Forælder på plads i/2 Børn på plads 2i og 2i + 1 (Se figur ovenfor. Formelt bevis til eksaminatorier.) 25 / 34
75 Operationer på en heap Max-Heapify: Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Build-Max-Heap: Lav n input elementer (uordnede) til en heap. 26 / 34
76 Max-Heapify Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Problem: knudens nøgle kan være mindre end en af sine børns nøgler. 27 / 34
77 Max-Heapify Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Problem: knudens nøgle kan være mindre end en af sine børns nøgler. Løsning: 27 / 34
78 Max-Heapify Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Problem: knudens nøgle kan være mindre end en af sine børns nøgler. Løsning: byt nøgle med barnet med den største nøgle, kør derefter Max-Heapify på dette barn. 27 / 34
79 Max-Heapify Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Problem: knudens nøgle kan være mindre end en af sine børns nøgler. Løsning: byt nøgle med barnet med den største nøgle, kør derefter Max-Heapify på dette barn. 27 / 34
80 Max-Heapify Givet en knude med to undertræer, som hver især overholder heap-orden, få hele knudens træ til at overholde heap-orden. Problem: knudens nøgle kan være mindre end en af sine børns nøgler. Løsning: byt nøgle med barnet med den største nøgle, kør derefter Max-Heapify på dette barn. Tid: O(højde af knude). 27 / 34
81 Max-Heapify Som pseudo-kode (med indarbejdet check for at man ikke kigger for langt i arrayet, dvs. længere end plads n): 28 / 34
82 Build-Heap Lav n input elementer (uordnede) til en heap. Ide: arranger elementerne i heap-facon, bring derefter træet i heap-orden nedefra og op. Observation: et træ af størrelse én overholder altid heaporder. 29 / 34
83 Build-Heap Lav n input elementer (uordnede) til en heap. Ide: arranger elementerne i heap-facon, bring derefter træet i heap-orden nedefra og op. Observation: et træ af størrelse én overholder altid heaporder. 29 / 34
84 Build-Heap Tid: 30 / 34
85 Build-Heap Tid: O(n log 2 n) klart. Bedre analyse giver O(n). 30 / 34
86 Build-Heap Som pseudo-kode: 31 / 34
87 Heapsort Byg en heap. Gentag: fjern rod (største element i heap), sæt sidste element op som rod, kald Max-Heapify. 32 / 34
88 Heapsort Byg en heap. Gentag: fjern rod (største element i heap), sæt sidste element op som rod, kald Max-Heapify. 32 / 34
89 Heapsort Som pseudo-kode: 33 / 34
90 Heapsort Som pseudo-kode: Tid: O(n) + O(n log n) = O(n log n) 33 / 34
91 Tre n log n sorteringsalgoritmer QuickSort MergeSort HeapSort Worstcase Inplace Heapsort kører dog langsommere end Mergesort og Quicksort pga. ineffektiv brug af hukommelse (random access). Introsort [Musser, 1997]: brug Quicksort, men skift under rekursionen til heapsort hvis rekursionen bliver for dyb. Dette giver en inplace, worst case O(n log n) algoritme, med god køretid i praksis (dette er sorteringsalgoritmen i standardbiblioteket STL for C++). 34 / 34
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereSortering af information er en fundamental og central opgave.
Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereSortering. De n tal i sorteret orden. Eksempel: Kommentarer:
Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus
Læs mereInvarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.
Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Læs mereSortering i lineær tid
Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen
Læs mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Læs mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
Læs mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereSortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort
Sortering Sortering ved fletning (merge-sort) 7 2 9 4! 2 4 7 9 7 2! 2 7 9 4! 4 9 7! 7 2! 2 9! 9 4! 4 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data
Læs mereAlgoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)
Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereDatastrukturer (recap) Datastruktur = data + operationer herpå
Dictionaries Datastrukturer (recap) Datastruktur = data + operationer herpå Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data (ofte underforstået, også
Læs mereGrådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs merePrioritetskøer og hobe. Philip Bille
Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereDatastrukturer. Datastruktur = data + operationer herpå
Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl
Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSøgning og Sortering. Philip Bille
Søgning og Sortering Philip Bille Plan Søgning Linæer søgning Binær søgning Sortering Indsættelsesortering Flettesortering Søgning Søgning 1 4 7 12 16 18 25 28 31 33 36 42 45 47 50 1 2 3 4 5 6 7 8 9 10
Læs mereDatastrukturer. Datastruktur = data + operationer herpå
Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:
Læs mereSortering ved fletning (merge-sort)
Sortering 1 Sortering ved fletning (merge-sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2 Del-og-hersk Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data S i to disjunkte
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSøgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning
Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]
Læs mereBRP Sortering og søgning. Hægtede lister
BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af
Læs mereAlgoritmer og invarianter
Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7
Side af 0 sider Opgave (%) Ja Nej /n er O(n )? n (logn) er O(n 3 )? n + n er O(3 n )? n er O((logn) 3 )? nlogn er Ω(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen:
Læs mere1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereEt generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n
Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med
Læs mereIntervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed
Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan
Læs mere22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.
22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327
Læs mereAlgoritmisk geometri
Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning
Læs mereDanmarks Tekniske Universitet
Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern
Læs merePrioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille
Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 26. marts 2009, kl.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs mereDanmarks Tekniske Universitet
side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereRolf Fagerberg. Forår 2013
Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,
Læs mereRolf Fagerberg. Forår 2012
Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
Læs mereMm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008
Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm6: More sorting algorithms: Heap sort and quick sort - October 9, 008 Algorithms and Architectures II. Introduction
Læs mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Martin Elsman Datalogisk Institut Københavns Universitet DIKU 10. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 10. Oktober, 2017 1 / 15
Læs mereDM507 - Algoritmer og datastrukturer
- Algoritmer og datastrukturer Køretid g(n) Udtryk Beskrivelse lim n f(n) o(f) Vokser langsommere end f = 0 O(f) Vokser højst så hurtigt som f < Θ(f) Vokser som f = c(c > 0) Ω(f) Vokser mindst så hurtigt
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereDanmarks Tekniske Universitet
Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereIntroduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Læs mereOm binære søgetræer i Java
Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret
Læs mereDefinition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er
Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i
Læs mereDanmarks Tekniske Universitet
Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det
Læs mereSøgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille
Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:
Læs mereDanmarks Tekniske Universitet
ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer
Læs mereDM02 Kogt ned. Kokken. Januar 2006
DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte
Læs mereAlgoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012
Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk
Læs mereDynamisk programmering
Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Læs mereSammenhængskomponenter i grafer
Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv
Læs mereDM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen
DM13-1. Obligatorisk opgave E.05 Jacob Aae Mikkelsen - 191076 26. september 2005 Indhold Analyse af problemstillingen........................ 2 Spørgsmål 1................................. 3 Spørgsmål
Læs mereInduktive og rekursive definitioner
Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal
Læs mereDanmarks Tekniske Universitet
side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n
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
Læs mereGrafer og graf-gennemløb
Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).
Læs mereIntroduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal
Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige
Læs mereDanmarks Tekniske Universitet
ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereIntroduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille
Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer
Læs mereGrafer og graf-gennemløb
Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).
Læs mereDanmarks Tekniske Universitet
Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det
Læs mereRolf Fagerberg. Forår 2014
Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA
Læs mere