Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
|
|
- Anja Dekker
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
2 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren, 6 ECTS tweedejaars Bachelor KI 1 Organisatie 2 Practicum 3 Inhoud college 4 Analyse van algoritmen 5 ArrayList José Lagerberg (FNWI, UvA) Datastructuren 2 / 46
3 Organisatie college - theorie van datastructuren college - C voor Informatica practicum Java voor KI practicum C voor Informatica Afsluiting 1 Tentamen in 8ste week (moet voldoende zijn, dus 5.6 of hoger) 2 Practicum (moet voldoende zijn, dus 5.6 of hoger) José Lagerberg (FNWI, UvA) Datastructuren 3 / 46
4 Inhoud datastructuren 1 Analyse van Algoritmen 2 Basis Datastructuren Stacks en Queues Lijsten Hash tabellen Priority queues en heaps 3 Zoekbomen Binaire zoekbomen B-bomen AVL bomen, rood-zwart bomen Splay bomen José Lagerberg (FNWI, UvA) Datastructuren 4 / 46
5 Leerdoelen Leerdoelen studenten kunnen operaties op datastructuren en algoritmen classificeren met behulp van de Big-Oh notatie José Lagerberg (FNWI, UvA) Datastructuren 5 / 46
6 Inhoud vandaag 1 Analyse van algoritmen bestuderen van efficiency van algoritme als input grootte verandert, gebaseerd op aantal stappen, computertijd en geheugengebruik 2 Big-Oh notatie Gebruik Big-Oh notatie om algoritme en operaties op datastructuren te karakteriseren 3 Sorteeralgoritmen Bepaal Big-Oh van aantal sorteeralgoritmen 4 ArrayList is datastructuur toegankelijk met index Wat is probleem van ArrayList? José Lagerberg (FNWI, UvA) Datastructuren 6 / 46
7 Datastructuur Datastructuur = Systematische manier om gegevens op te slaan, te wijzigen, en terug te kunnen vinden. Voorbeelden: stapel, wachtrij, lijst, boom José Lagerberg (FNWI, UvA) Datastructuren 7 / 46
8 Algoritme Algoritme = eindige rij instructies om een doel te bereiken José Lagerberg (FNWI, UvA) Datastructuren 8 / 46
9 Worst case, best case, average case Voor probleem van grootte n: Worst case: langste looptijd voor alle mogelijke invoer ter grootte n - bepaal de maximum looptijd van algoritme Best case: kortste looptijd voor alle mogelijke invoer ter grootte n - bepaal de minimum looptijd van algoritme Average case: gemiddelde looptijd voor alle mogelijke invoer ter grootte n - bepaal de gemiddelde looptijd van algoritme José Lagerberg (FNWI, UvA) Datastructuren 9 / 46
10 Voorbeeld van 3 cases Gegeven ongesorteerde rij van n getallen tussen 1 en 100. Probleem: zoek getal 10 Worst case: doorloop hele rij en vindt getal 10 op laatste plek, of helemaal niet Best case: vindt getal 10 op eerste plek van rij Average case: doorloop helft van rij tot getal 10 gevonden José Lagerberg (FNWI, UvA) Datastructuren 10 / 46
11 Running time (looptijd) als functie van grootte input Een algoritme vergt inspanning: tijd, ruimte, (=tijds- of ruimtecomplexiteit) De inspanning neemt toe met de omvang van de input Average-case complexiteit is vaak moeilijk te bepalen We richten ons op de worst case complexiteit José Lagerberg (FNWI, UvA) Datastructuren 11 / 46
12 Experimentele Analyse door implementatie/benchmarking Nadelen Vereist implementatie, slechts steekproeven, Benchmarking: Implementeer je algoritme, test je implementatie uit op input van verschillende grootte en samenstelling, meet de looptijd in seconden en geheugengebruik in bytes teken een grafiek resultaat is hardware- en software-afhankelijk. met andere compiler en andere computer heel ander resultaat mogelijk José Lagerberg (FNWI, UvA) Datastructuren 12 / 46
13 Wiskundige (Asymptotische) Analyse Hoe kunnen we looptijd T (n) van algoritme bepalen uit definitie van algoritme? bepalen van aantal statements in algoritme looptijd T (n) bepalen als functie van invoergrootte n analyse geldt voor willekeurige input, looptijd is onafhankelijk van hardware en software. Asymptotische analyse 1 Groei van T (n) bekijken als n 2 Bepalen van worst case complexiteit van algoritme José Lagerberg (FNWI, UvA) Datastructuren 13 / 46
14 Asymptotische complexiteit Stel dat een algoritme 8n + 5 stappen nodig heeft voor input van grootte n Wat is de betekenis van de 8 en de +5? Als n groot wordt, heeft de +5 geen betekenis meer De 8 is niet nauwkeurig als verschillende operaties verschillende hoeveelheid tijd kosten Fundamenteel is dat de tijd lineair is in n Asymptotische complexiteit: als n groot wordt, vergeet dan alle termen van lagere orde, en beschouw alleen term met hoogste orde José Lagerberg (FNWI, UvA) Datastructuren 14 / 46
15 Complexiteit van algoritme, aantal stappen tellen? Analyse van algoritme voor berekenen van integer exponent s t a t i c i n t exp ( i n t a, i n t n ) { i n t ans = 1 ; w h i l e ( n > 0) { // w h i l e l o o p n k e e r u i t g e v o e r d ans = a ; n = 1 ; r e t u r n ans ; Hoeveel stappen T (n) gebruikt door methode? aantal stappen T (n) = n n T(n) Als n verdubbelt, dan verdubbelt looptijd José Lagerberg (FNWI, UvA) Datastructuren 15 / 46
16 c l a s s Voorbeeld1 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { i n t [ ] a = {1, 4, 7, 10, 3, 4, 2, 9 ; i n t i n d e x = s e a r c h ( a, 2 ) ; System. out. p r i n t l n ( i n d e x i s + i n d e x ) ; / zoek naar een waarde i n een a r r a y / s t a t i c i n t s e a r c h ( i n t [ ] x, i n t t a r g e t ) { f o r ( i n t i = 0 ; i < x. l e n g t h ; i ++) { i f ( x [ i ] == t a r g e t ) r e t u r n i ; r e t u r n 1; worst case Als target niet aanwezig loop x.length = n keer uitgevoerd average case Als target wel aanwezig loop gemiddeld n/2 keer uitgevoerd best case Meteen eerste keer raak José Lagerberg (FNWI, UvA) Datastructuren 16 / 46
17 c l a s s Voorbeeld2 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { i n t [ ] a = {1, 4, 7, 10, 3, 4, 2, 9 ; i n t [ ] b = {3, 9, 8, 2, 5, 6 ; System. out. p r i n t l n ( arethesame ( a, b ) ) ; / b e p a a l o f twee a r r a y s een z e l f d e element b e v a t t e n / s t a t i c boolean arethesame ( i n t [ ] x, i n t [ ] y ) { f o r ( i n t i = 0 ; i < x. l e n g t h ; i ++) { i f ( s e a r c h ( y, x [ i ] )!= 1) // element gevonden r e t u r n true ; r e t u r n f a l s e ; Loop in arethesame x.length = n keer uitgevoerd Loop binnen search y.length = m keer uitgevoerd Totale executie-tijd evenredig met n * m José Lagerberg (FNWI, UvA) Datastructuren 17 / 46
18 c l a s s Voorbeeld3 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { i n t [ ] a = {1, 4, 7, 10, 3, 4, 2, 9 ; System. out. p r i n t l n ( a reunique ( a ) ) ; / b e p a a l o f a r r a y u n i e k e elementen b e v a t / s t a t i c boolean a reunique ( i n t [ ] x ) { f o r ( i n t i = 0 ; i < x. l e n g t h ; i ++) { f o r ( i n t j = 0 ; j < x. l e n g t h ; j ++) { i f ( i!= j && x [ i ] == x [ j ] ) // n i e t u n i e k r e t u r n f a l s e ; r e t u r n true ; worst case is als elementen uniek zijn i-for loop x.length = n keer, j-for loop x.length = n keer If-statement n 2 keer uitgevoerd José Lagerberg (FNWI, UvA) Datastructuren 18 / 46
19 c l a s s Voorbeeld4 { / b e p a a l o f a r r a y u n i e k e elementen b e v a t t e n / s t a t i c boolean a reunique ( i n t [ ] x ) { f o r ( i n t i = 0 ; i < x. l e n g t h ; i ++) { f o r ( i n t j = i + 1 ; j < x. l e n g t h ; j ++) { i f ( x [ i ] == x [ j ] ) r e t u r n f a l s e ; r e t u r n true ; worst case is als elementen uniek zijn eerste keer j-for loop x.length - 1 = n - 1 keer tweede keer j-for loop x.length - 2 = n - 2 keer laatste keer j-for loop 1 keer aantal keren if-statement n (n 1) (n 1) + (n 2) = = 0.5n 2 0.5n 2 José Lagerberg (FNWI, UvA) Datastructuren 19 / 46
20 Gebruik van Big-Oh (Asymptotische notatie) Wat is relatie tussen grootte van input en looptijd van algoritme? 1 als looptijd verdubbelt bij verdubbeling van n, dan algoritme van orde n (lineair) 2 als looptijd verviervoudigt bij verdubbeling van n, dan algoritme van orde n 2 (kwadratisch) 1 eerste algoritme van orde O(n) 2 tweede algoritme van orde O(n 2 ) Deze Big-Oh notatie gebruikt om algoritmen te classificeren: hoe reageren algoritmen op verandering van grootte van input? Bepaling van Big-Oh van algoritme: bekijk loops en of ze genest zijn bekijk hoe vaak een loop wordt doorlopen José Lagerberg (FNWI, UvA) Datastructuren 20 / 46
21 Executietijd T (n) f o r ( i n t i = 0 ; i < n ; i ++) { f o r ( i n t j = 0 ; j < n ; j ++) { s t a t e m e n t f o r ( i n t i = 0 ; i < n ; i ++) { s t a t e m e n t 1 s t a t e m e n t 2 s t a t e m e n t 3 s t a t e m e n t 4 s t a t e m e n t 5 Neem aan statement gebruikt één tijdseenheid en for-loops kosten niets Executietijd T (n) als functie van n is T (n) = n 2 + 3n + 2 T (n) = O(n 2 ) José Lagerberg (FNWI, UvA) Datastructuren 21 / 46
22 Definitie van Big-Oh Definitie Zij f, g : N R. We zeggen f (n) is O(g(n)) als er c R en n 0 N bestaan met c > 0 en n 0 1 zo dat f (n) c g(n) voor n n 0 José Lagerberg (FNWI, UvA) Datastructuren 22 / 46
23 Big-Oh Definitie Zij f, g : N R. We zeggen f (n) is O(g(n)) als er c R en n 0 N bestaan met c > 0 en n 0 1 zo dat f (n) c g(n) voor n n 0 Voorbeeld 2n + 10 is O(n) 2n + 10 cn (c 2)n 10 n 10/(c 2) Neem c = 3 en n 0 = 10 2n n voor n 10 José Lagerberg (FNWI, UvA) Datastructuren 23 / 46
24 Big-Oh Voorbeeld Voorbeeld n 2 is NIET O(n) n 2 cn n c Onmogelijk... c is constante José Lagerberg (FNWI, UvA) Datastructuren 24 / 46
25 Meer Big-Oh Voorbeelden Voorbeeld (7n 2) 7n 2 is O(n). We hebben c > 0 en n 0 1 nodig met 7n 2 cn voor n n 0. Neem c = 7, n 0 = 1. 7n 2 7n voor n 1 José Lagerberg (FNWI, UvA) Datastructuren 25 / 46
26 Big-Oh voorbeeld Voorbeeld (3n n 2 + 5) 3n n is O(n 3 ). We hebben c > 0 en n 0 1 nodig met 3n n cn 3 voor n n 0. Neem c = 4 en n 0 = 21. 3n n n 3 voor n 21. José Lagerberg (FNWI, UvA) Datastructuren 26 / 46
27 Big-Oh voorbeeld Voorbeeld (3 log n + 5) 3 log n + 5 is O(log n). We hebben c > 0 en n 0 1 nodig met 3 log n + 5 c log n voor n n 0. Je kunt nemen c = 4 en dan is n 0 = 32. (log 2 5 = 5 log n) Of je kunt nemen c = 5 en dan is n 0 = 7. (log 2 5/2 = 5/2 log n). 3 log n log n voor n log n log n voor n 7. José Lagerberg (FNWI, UvA) Datastructuren 27 / 46
28 Big-Oh begrenst de groei van boven De uitspraak f (n) is O(g(n)) betekent dat het groeitempo van f (n) niet groter is dan dat van g(n). Big-Oh Regels a k n k + a k 1 n k 1 + a 1 n + a 0 is O(n k ): laat constanten en kleine orde-termen weg! Zeg 2n is O(n) i.p.v. 2n is O(n 2 ) (minimale) 3n + 5 is O(n) i.p.v. 3n + 5 is O(3n). José Lagerberg (FNWI, UvA) Datastructuren 28 / 46
29 Meest voorkomende groeitempo s O(1) constant bepalen of getal even of oneven O(log(n)) logaritmisch binair zoeken in gesorteerd array O(n) lineair zoeken van item in ongesorteerd array O(n log(n)) log-lineair FFT, heap sort, merge sort O(n 2 ) kwadratisch bubble-, insertion-, selection sort O(n 3 ) derdemachts O(2 n ) exponentieel traveling salesman problem O T(50) T(100) T(100)/T(50) O(1) O(log(n)) O(n) O(n log(n)) O(n 2 ) O(n 3 ) O(2 n ) Table: uit Datastructures van Koffman en Wolfgang José Lagerberg (FNWI, UvA) Datastructuren 29 / 46
30 José Lagerberg (FNWI, UvA) Datastructuren 30 / 46
31 Opgaven Opgave 1 Hoe vaak worden de statements in de binnenste loop uitgevoerd? Wat is de orde van dit programmaonderdeel? for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) {... Oplossing aantal keren is n n = n 2 orde O(n 2 ) José Lagerberg (FNWI, UvA) Datastructuren 31 / 46
32 Opgaven Opgave 2 Hoe vaak worden de statements in de binnenste loop uitgevoerd? Wat is de orde van dit programmaonderdeel? for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) {... Oplossing aantal keren is ((n 1) + (n 2) + + (1)) = n(n 1) 2 = 0.5n 2 0.5n orde O(n 2 ) José Lagerberg (FNWI, UvA) Datastructuren 32 / 46
33 Opgaven Opgave 3 Hoe vaak worden de statements in de loop uitgevoerd? Wat is de orde van dit programmaonderdeel? for (int i = 1; i < n; i *= 2) {... Oplossing Loop wordt uitgevoerd voor de volgende waarden van i: 1, 2, 4, 8, 16, 32,..., 2 k 1 met 2 k n 2 k 1 n 2 k k 1 log n k orde O(log n) José Lagerberg (FNWI, UvA) Datastructuren 33 / 46
34 Opmerking Big-Oh notatie drukt een relatie tussen functies uit Het zegt niet wat de functies zijn! Functie links hoeft niet de worst-case running time te zijn Voorbeeld Binair zoeken in gesorteerd array van grootte n We zullen later zien dat: worst-case running time is O(log n) best-case running time is O(1) gemiddelde running time is O(log n/2) = O(log n) geheugengebruik is O(n) José Lagerberg (FNWI, UvA) Datastructuren 34 / 46
35 De buren van Big-Oh ondergrens f (n) is Ω(g(n)) c > 0, n 0 1, n n 0 : f (n) c g(n) bovengrens én ondergrens f (n) is Θ(g(n)) c, c > 0, n 0 1, n n 0 : c g(n) f (n) c g(n) dwz. f (n) is O(g(n)) en Ω(g(n)) José Lagerberg (FNWI, UvA) Datastructuren 35 / 46
36 Sorteeralgoritmen Fundamenteel probleem van informatica: sorteren lijst Bubble-Sort O(n 2 ) Selection-Sort O(n 2 ) Insertion-Sort O(n 2 ) Merge-Sort O(n log n) Quick-Sort O(n log n) José Lagerberg (FNWI, UvA) Datastructuren 36 / 46
37 Vergelijking O(n 2 ) sorteeralgoritmen José Lagerberg (FNWI, UvA) Datastructuren 37 / 46
38 Vergelijking O(n log n) sorteeralgoritmen José Lagerberg (FNWI, UvA) Datastructuren 38 / 46
39 ArrayList is datastructuur met index Toegang elementen in willekeurige volgorde met index lengte array is vast toevoeging add(int index, E e) op bepaalde plek schuift andere elementen op (van orde O(n)) weghalen remove(int index) op bepaalde plek schuift andere elementen terug (van orde O(n)) als ArrayList vol, moet nieuw groter array gealloceerd worden en oude data hierin gecopieerd worden de add(e e) operatie voegt element toe aan einde lijst (van orde O(1)) wat kost deze add(e e) operatie gemiddeld? (volgende week) I n d o c u m e n t a t i e van A r r a y L i s t The add o p e r a t i o n r u n s i n a m o r t i z e d c o n s t a n t time, t h a t i s, adding n e l e m e n t s r e q u i r e s O( n ) time. José Lagerberg (FNWI, UvA) Datastructuren 39 / 46
40 Toevoegen aan en weghalen uit ArrayList A r r a y L i s t <S t r i n g > l i s t = new A r r a y L i s t <S t r i n g >(); l i s t. add ( Jansen ) ; l i s t. add ( P i e t e r s e n ) ; l i s t. add ( D i r k s e n ) ; l i s t. add ( Arends ) ; System. out. p r i n t l n ( l i s t ) ; l i s t. add ( 2, Willems ) ; System. out. p r i n t l n ( l i s t ) ; l i s t. add ( Burger ) ; System. out. p r i n t l n ( l i s t ) ; l i s t. remove ( 0 ) ; System. out. p r i n t l n ( l i s t ) ; [ Jansen, P i e t e r s e n, Dirksen, Arends ] [ Jansen, P i e t e r s e n, Willems, Dirksen, Arends ] [ Jansen, P i e t e r s e n, Willems, Dirksen, Arends, Burger ] [ P i e t e r s e n, Willems, Dirksen, Arends, Burger ] José Lagerberg (FNWI, UvA) Datastructuren 40 / 46
41 Reallocatie van List a b s t r a c t S i m p l e L i s t < > I L i s t / \ add ( ) / \ s i z e ( ) / \ c l e a r ( ) / \ a b s t r a c t r e s i z e ( ) / \ S i m p l e L i s t D o u b l i n g S i m p l e L i s t F i x e d r e s i z e ( ) r e s i z e ( ) José Lagerberg (FNWI, UvA) Datastructuren 41 / 46
42 Reallocatie van List p u b l i c i n t e r f a c e I L i s t { p u b l i c void add ( Object x ) ; p u b l i c i n t s i z e ( ) ; p u b l i c void c l e a r ( ) ; p u b l i c a b s t r a c t c l a s s S i m p l e L i s t implements I L i s t { p r i v a t e s t a t i c f i n a l i n t INIT SIZE = 1 0 ; Object [ ] mycon ; i n t mysize ; p u b l i c S i m p l e L i s t ( ) { mycon = new Object [ INIT SIZE ] ; mysize = 0 ;... José Lagerberg (FNWI, UvA) Datastructuren 42 / 46
43 Voorbeeld van eigen SimpleList methoden p u b l i c void add ( Object x ) { i f ( s i z e ( ) == mycon. l e n g t h ) r e s i z e ( ) ; mycon [ mysize ] = x ; mysize++; a b s t r a c t void r e s i z e ( ) ; p u b l i c i n t s i z e ( ) { r e t u r n mysize ; p u b l i c void c l e a r ( ) { mycon = new Object [ 1 0 ] ; mysize = 0 ; José Lagerberg (FNWI, UvA) Datastructuren 43 / 46
44 Fixed of Doubling p u b l i c c l a s s S i m p l e L i s t F i x e d extends S i m p l e L i s t { void r e s i z e ( ) { Object [ ] temp = new Object [ s i z e ( ) ] ; System. a r r a y c o p y (mycon, 0, temp, 0, s i z e ( ) ) ; mycon = temp ; p u b l i c c l a s s S i m p l e L i s t D o u b l i n g extends S i m p l e L i s t { void r e s i z e ( ) { Object [ ] temp = new Object [ s i z e ( ) 2 ] ; System. a r r a y c o p y (mycon, 0, temp, 0, s i z e ( ) ) ; mycon = temp ; José Lagerberg (FNWI, UvA) Datastructuren 44 / 46
45 Fixed of Doubling A r r a y L i s t <I L i s t > l i s t s = new A r r a y L i s t <I L i s t >(); l i s t s. add ( new S i m p l e L i s t D o u b l i n g ( ) ) ; l i s t s. add ( new S i m p l e L i s t F i x e d ( ) ) ; f o r ( I L i s t l i s t : l i s t s ) { System. out. p r i n t l n ( l i s t. g e t C l a s s ( ). getsimplename ( ) ) ; t e s t L i s t ( l i s t ) ; s t a t i c void t e s t L i s t ( I L i s t l i s t ) { f o r ( i n t i = 1000; i < ; i = 2){ long s t a r t = System. c u r r e n t T i m e M i l l i s ( ) ; f o r ( i n t j = 0 ; j < i ; j ++) l i s t. add ( j ) ; long s t o p = System. c u r r e n t T i m e M i l l i s ( ) ; show ( Time to add + i + e l e m e n t s + ( s t o p s t a r t ) + m i l l i s e c o n d s. ) ; l i s t. c l e a r ( ) ; José Lagerberg (FNWI, UvA) Datastructuren 45 / 46
46 java -Xint ListTester % j a v a X i n t L i s t T e s t e r S i m p l e L i s t D o u b l i n g Time to add 1000 e l e m e n t s 1 m i l l i s e c o n d s. Time to add 2000 e l e m e n t s 1 m i l l i s e c o n d s. Time to add 4000 e l e m e n t s 1 m i l l i s e c o n d s. Time to add 8000 e l e m e n t s 3 m i l l i s e c o n d s. Time to add e l e m e n t s 5 m i l l i s e c o n d s. Time to add e l e m e n t s 10 m i l l i s e c o n d s. Time to add e l e m e n t s 21 m i l l i s e c o n d s. Time to add e l e m e n t s 44 m i l l i s e c o n d s. S i m p l e L i s t F i x e d Time to add 1000 e l e m e n t s 0 m i l l i s e c o n d s. Time to add 2000 e l e m e n t s 0 m i l l i s e c o n d s. Time to add 4000 e l e m e n t s 2 m i l l i s e c o n d s. Time to add 8000 e l e m e n t s 2 m i l l i s e c o n d s. Time to add e l e m e n t s 5 m i l l i s e c o n d s. Time to add e l e m e n t s 16 m i l l i s e c o n d s. Time to add e l e m e n t s 36 m i l l i s e c o n d s. Time to add e l e m e n t s 117 m i l l i s e c o n d s. José Lagerberg (FNWI, UvA) Datastructuren 46 / 46
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Nadere informatie12 september 2012 Complexiteit. Analyse van algoritmen (doelen) Empirische analyse : Voorbeeld Gevolgen
Complexiteit van Algoritmen Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 12 september 2012 ODE/FHTBM Complexiteit van Algoritmen 12 september 2012 1/41 Efficientie-analyse
Nadere informatiepublic boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 7 Leo van Iersel Technische Universiteit Delft 26 oktober 2016 Leo van Iersel (TUD) TW2020 Optimalisering 26 oktober 2016 1 / 28 Deze week: analyseren van algoritmes Hoe
Nadere informatieHoofdstuk 8: Algoritmen en Complexiteit
Hoofdstuk 8: Algoritmen en Complexiteit Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? 22 oktober 2014 1 Vandaag: Hoe meten we de performance
Nadere informatieTweede college complexiteit. 12 februari Wiskundige achtergrond
College 2 Tweede college complexiteit 12 februari 2019 Wiskundige achtergrond 1 Agenda vanmiddag Floor, Ceiling Rekenregels logaritmen Tellen Formele definitie O, Ω, Θ met voorbeelden Stellingen over faculteiten
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieEerste Toets Datastructuren 11 juli 2018, , Educ-α.
Eerste Toets Datastructuren 11 juli 2018, 13.30 15.30, Educ-α. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert
Nadere informatieHoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding
Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 7 Leo van Iersel Technische Universiteit Delft 21 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 1 / 20 Deze week: algoritmes en complexiteit
Nadere informatieDatastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
Nadere informatie1 Complexiteit. of benadering en snel
1 Complexiteit Het college van vandaag gaat over complexiteit van algoritmes. In het boek hoort hier hoofdstuk 8.1-8.5 bij. Bij complexiteitstheorie is de belangrijkste kernvraag: Hoe goed is een algoritme?
Nadere informatieDerde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Nadere informatieTijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.
Complexiteit of efficiëntie van algoritmen Hoe meet je deze? Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Een betere maatstaf is het aantal berekeningsstappen
Nadere informatieSyntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieZevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)
College 7 Zevende college complexiteit 7 maart 2017 Mergesort, Ondergrens sorteren (Quicksort) 1 Inversies Definitie: een inversie van de permutatie A[1],A[2],...,A[n] is een paar (A[i],A[j]) waarvoor
Nadere informatie4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e
4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieEerste Toets Datastructuren 22 mei 2019, , Educ-β en Megaron.
Eerste Toets Datastructuren 22 mei 209, 3.30 5.30, Educ-β en Megaron. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, juni 2017
Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2005 2006, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Splaybomen
Nadere informatieVierde college complexiteit. 16 februari Beslissingsbomen en selectie
Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen
Nadere informatie2 Recurrente betrekkingen
WIS2 1 2 Recurrente betrekkingen 2.1 Fibonacci De getallen van Fibonacci Fibonacci (= Leonardo van Pisa), 1202: Bereken het aantal paren konijnen na één jaar, als 1. er na 1 maand 1 paar pasgeboren konijnen
Nadere informatieZoek- en sorteeralgoritmen en hashing
Zoek- en sorteeralgoritmen en hashing Femke Berendsen (3689301) en Merel van Schieveen (3510190) 9 april 2013 1 Inhoudsopgave 1 Inleiding 3 2 Zoek- en sorteeralgoritmen 3 2.1 Grote O notatie..........................
Nadere informatiehttp://www.liacs.nl/home/kosters/java/
sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieDatastructuren; (Zoek)bomen
Datastructuren; (Zoek)bomen Bomen, zoekbomen, gebalanceerde zoekbomen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 1 / 50 Bomen Traversal van bomen Datastructuur van
Nadere informatieVierde college complexiteit. 14 februari Beslissingsbomen
College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then
Nadere informatieStacks and queues. Hoofdstuk 6
Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked
Nadere informatieZevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort
College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:
Nadere informatiepublic boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieDatastructuren Uitwerking jan
Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties
Nadere informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieZesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort
College 6 Zesde college complexiteit 19 maart 2019 Mergesort, Ondergrens sorteren Quicksort, Shellsort 1 Vorige keer Voor sorteeralgoritmen gebaseerd op arrayvergelijkingen, waarbij per arrayvergelijking
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieRecursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
Nadere informatie8. Complexiteit van algoritmen:
8. Complexiteit van algoritmen: Voorbeeld: Een gevaarlijk spel 1 Spelboom voor het wespenspel 2 8.1 Complexiteit 4 8.2 NP-problemen 6 8.3 De oplossing 7 8.4 Een vuistregel 8 In dit hoofdstuk wordt het
Nadere informatieVierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
Nadere informatieProgrammeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
Nadere informatieOpgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.
Opgaven Analyse van Algoritmen 10 mei 019, Datastructuren, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot
Nadere informatieGegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )
OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................
Nadere informatieV = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.
WIS14 1 14 Grafen 14.1 Grafen Gerichte grafen Voor een verzameling V is een binaire relatie op V een verzameling geordende paren van elementen van V. Voorbeeld: een binaire relatie op N is de relatie KleinerDan,
Nadere informatieTentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft
I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieDatastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
Nadere informatieDerde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2019/Complexiteit Derde college algoritmiek 22 februari 2019 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2019/Complexiteit Opgave 1 bomenpracticum Niet de bedoeling: globale (member-)variabele
Nadere informatieProgrammeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Nadere informatieElke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.
Versie 16 januari 2017 Sorteren unplugged Sorteren gebeurt heel veel. De namen van alle leerlingen in de klas staan vaak op alfabetische volgorde. De wedstrijden van een volleybal team staan op volgorde
Nadere informatieUniversiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Nadere informatieProgrammeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Nadere informatieAmorized Analysis en Union-Find Algoritmiek
Amorized Analysis en Union-Find Vandaag Amortized analysis Technieken voor tijdsanalyse van algoritmen Union-find datastructuur Datastructuur voor operaties op disjuncte verzamelingen Verschillende oplossingen
Nadere informatieREEKS I. Zaterdag 6 november 2010, 9u
TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS I Zaterdag 6 november 2010, 9u NAAM :... VRAAG 1: MINSTENS [5 PUNTEN] Schrijf een methode minstens(), met twee
Nadere informatieDerde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2018/Complexiteit Derde college algoritmiek 2 februari 2018 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2018/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieHet Eindfeest. Algoritmiek Opgave 6, Voorjaar
1 Achtergrond Het Eindfeest Algoritmiek Opgave 6, Voorjaar 2017 1 Om het (successvol) afsluiten van Algoritmiek te vieren, is er een groot feest georganiseerd. Jij beschikt als enige van je vrienden over
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Organisatie Website Vakwebsite: http://www.cs.uu.nl/docs/vakken/ki2v12009/ Bevat alle
Nadere informatieTentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieTweede Toets Datastructuren 27 juni 2018, , Olympos Hal 2.
Tweede Toets Datastructuren 27 juni 2018, 13.30 15.30, Olympos Hal 2. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag
Nadere informatieUitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Nadere informatierecursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Nadere informatieD-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?
D -DAG 13 februari 2014: 1+ 1 = 2 (en hoe nu verder?) 1 = 2en hoe nu verder? 1 Inleiding Snel machtsverheffen Stel je voor dat je 7 25 moet uitrekenen. Je weet dat machtsverheffen herhaald vermenigvuldigen
Nadere informatie(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Nadere informatieLogische Complexiteit Hoorcollege 12
Logische Complexiteit Hoorcollege 12 Jacob Vosmaer Bachelor CKI, Universiteit Utrecht 22 maart 2011 Tijdscomplexiteit Inleiding Grote O en kleine o Complexiteitsanalyse van een simpele taal Complexiteitsverschillen
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieKortste Paden. Algoritmiek
Kortste Paden Toepassingen Kevin Bacon getal Six degrees of separation Heeft een netwerk de small-world eigenschap? TomTom / Google Maps 2 Kortste paden Gerichte graaf G=(N,A), en een lengte L(v,w) voor
Nadere informatieDatastructuren en Algoritmen voor CKI
Ω /texmf/tex/latex/uubeamer.sty-h@@k 00 /texmf/tex/latex/uubeamer.sty Datastructuren en Algoritmen voor CKI Vincent van Oostrom Clemens Grabmayer Afdeling Wijsbegeerte Hoorcollege 5 16 februari 2009 Waar
Nadere informatieWISKUNDE B -DAG 2002 1+ 1 = 2. maar en hoe nu verder? 29 november 2002
- 0 - WISKUNDE B -DAG 2002 1+ 1 = 2 maar en hoe nu verder? 29 november 2002 De Wiskunde B-dag wordt gesponsord door Texas Instruments - 1 - Inleiding Snel machtverheffen Stel je voor dat je 7 25 moet uitrekenen.
Nadere informatieAlgoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieAlgoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen
Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen
Nadere informatieInformatica: C# WPO 11
Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo
Nadere informatieInformatica: C# WPO 7
Informatica: C# WPO 7 1. Inhoud 1D-arrays, Lijsten 2. Oefeningen Demo 1: Vul de 1D-array Demo 2: Stringreplace Demo 3: Vul de lijst Demo 4: Debug oplossingen demo s 1, 2 en 3 A: Array reversal A: Gemiddelde
Nadere informatieHoofdstuk 9. Hashing
Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel
Nadere informatieBouwstenen voor PSE. Datatypes en Datastructuren
Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie
Nadere informatieVijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument
Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen
Nadere informatieTwaalfde college complexiteit. 11 mei 2012. Overzicht, MST
College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Nadere informatieALGORITMIEK. Keuzemodule Wiskunde B/D. Mark de Berg TU Eindhoven
ALGORITMIEK Keuzemodule Wiskunde B/D Mark de Berg TU Eindhoven Voorwoord Algoritmiek is het gebied binnen de informatica dat zich bezig houdt met het ontwerpen en analyseren van algoritmen en datastructuren.
Nadere informatieTwaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify
Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de
Nadere informatieInleiding programmeren
Inleiding programmeren Docent: José Lagerberg Assistenten: Robin de Vries, Jordy Perlee, Dimitri Belfor, Stephen Swatman, Erik Kooistra, Daan Kruis, Daniel Louwrink Cursusinformatie: https://staff.fnwi.uva.nl/j.m.lagerberg
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2010-2011 21 juni 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Nadere informatieOefeningen voor de oefeningenles. Oefening 1
Oefeningen voor de oefeningenles Oefening 1 Gegeven een arbitraire binaire zoekboom T met n toppen en een (andere of gelijke) binaire zoekboom T die ook n sleutels bevat. Beschrijf een algoritme dat in
Nadere informatieModulewijzer InfPbs00DT
Modulewijzer InfPbs00DT W. Oele 0 juli 008 Inhoudsopgave Inleiding 3 Waarom wiskunde? 3. Efficiëntie van computerprogramma s............... 3. 3D-engines en vectoranalyse................... 3.3 Bewijsvoering
Nadere informatieTree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011
15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree
Nadere informatieVariabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 30 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Dynamische verzamelingen Stack implementaties Array met maximale grootte Linked List
Nadere informatieTweede Toets Datastructuren 29 juni 2016, , Educ-Γ.
Tweede Toets Datastructuren 29 juni 2016, 13.30 15.30, Educ-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe
Nadere informatiesheets Programmeren 1 Java college 6, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 13 en 14 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):
Nadere informatieOpgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017.
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes
Nadere informatie