{1,3,4}{6,7,9,10}{2,5,8} vader. knoop. find(10) = 9 = 9 = find(7) find(10) = 9 5 = find(8) union(10,8): union-find
|
|
- Sterre de Wilde
- 6 jaren geleden
- Aantal bezoeken:
Transcriptie
1 3 4 5 {,3,4}{6,7,9,0}{,5,8} knoop vader find(0) = 9 = 9 = find(7) find(0) = 9 5 = find(8) 5 union(0,8): union-find 7 6 0
2 priority queue DT priority queue
3 nivo s van abstractie priority queue verzameling objecten met prioriteit initialiseren, leeg-test, toevoegen, oogste vinden, en verwijderen eap complete boom met eap-eigenscap trickle-up sift-down array vader(i) = i/
4 binaire eap eap: implementatie priority queue complete bin. boom array eap eigenscap: [i] > [i], [i+] basisoperaties: borrel omoog, zink neer percolate toevoegen grootste verwijderen O(lg n) 3 O(n) eap gereed maken variant: symmetrisce min-max eap
5 min-max priority queue Symmetric Min-Max eap broers: min-max van alle waarden eronder lokale eisen: Q Lnode(N).key N.key Q N.key Rnode(N).key Q3 X.key Y.key min-max eap deap (double ended) diamond deque back-to-back eap interval eap Lnode(N) X N N P Y N 3 N 4 Rnode(N) symmetric min-max eap: a simpler data structure for double-ended priority queue. IPL 69 (999) 97-99
6 priority queue complexiteit eap 6.3 binomial queue 6.8. fibonacci queue.4 leftist tree 6.6 eap bino fibo left init isempty insert log log log findmin log deletemin log log log log merge n log log decreasekey log log log fibonacci queue: - amortized complexiteit - Dijkstra, kortste paden (& Prim)
7 priority queue lineair lineaire lijst geordend / ongeordend array / pointers arr +ord pnt +ord eap insert vinden lg n n plaatsen n lg n maximum vinden n n verwijderen! lg n init n lg n n lg n n
8 leftist tree - ritsen eap-ordening niet compleet basisoperatie ritsen
9 leftist tree - operaties voeg element toe verwijder maximum T ritsen recursief: a a T T a a T a>b b b T 3 T 4 b T 3 T 4
10 leftist trees - efficiëntie bladafstand: npl + lengte kortste pad naar blad leftist korte paden naar rects boom elt naar links over blaf(links) blaf(rects) aanpassen structuur links-ellend leftist
11 leftist trees - na ritsen structuur: top-down? bladafstand: bottom-up!????????
12 complexiteit ritsen k k = min{ l,r } + = r + l r l r = k- bewering. leftist boom T met wortel v waarvoor blaf(v) = k dan i. bevat T tenminste k - knopen ii. eeft et recter pad k knopen bewijs (van i). (basis: k= ) tenminste = - knoop (inductiestap: correct voor k; bewijzen voor k+ ) linker subboom eeft tenminste l - knopen; rects tenminste r - knopen. elk van deze waarden is tenminste k -, dus totaal tenminste k+ - knopen. leftist boom met n knopen eeft blaf(v) = k met k - n, dus k lg(n+)
13 binomial tree van graad k B 0 B B B 3 binomial queue B k = = B k- B k- B k- B k-... B 0 k knopen binomial forest bi-bos van elke graad maximaal één boom binomial queue binomial forest eap ordening knopen
14 = binomial queue- merge ø carry carry resultaat basisoperatie merge
15 binomial q - operaties insert deletemin representatie
16 fibonacci queue luie binomial queue uitstel samenvoegen gelijke graad Fibonacci queue toevoegen element samenvoegen queues - lui verwijder minimum - minimum pointer - structuur erstellen minder stricte vorm sleutel verlagen decrease key - knoop los van ouder alen - aan bos toevoegen - markeer ouder - maximaal één kind verliezen cascade cut
17 toevoegen 7,5,,6,3,8,, deletemin fibo queue vs. binom fibonacci queue binomial queue
18 5 5 decreasekey fibo queue x * cascade cut
19 decreasekey * fibo queue graad
20 deletemin fibo queue minimum pointer - structuur erstellen 5 5
21 ! letters + frequenties B C D E F ? boomcode 00 D 0 B 00 E 0 C 0 F Huffman code B E D C B F verwacte codelengte = gewogen padlengte : E C D F B E D C F letter α freq(α) diepte(α)
22 n=4 f f f 3 f 4 n=3 f +f f 3 f 4 Huffman: correcteid 3 4 even goed beter verscil f +f
23 Ziv-Lempel-Welc adaptive data compression woord 8 bit a 4 bit letter vb. {a,b,c,d}* a 4 bits coderen ababcbababaaaa decoderen a b ab c ba?.. 8 niet in boom : net toegevoegd! a b c d 0 3 b a b c b 6 8 a 9 a b c d 0 3 b a b c b 6 8
24 ZLW trie - progr.opgave ZLW code-tabel a a 0 ab a 4 abc a 6 b a ba a 5 coderen a b c d 0 3 b a b c b 6 8 a 9 bab a 8 baba a 9 c a cb a 7 d a 3 implementatie ier bits b ~ 0 DT: dictionary representatie: trie decoderen 0 a a - b b - c c - 3 d d - 4 ab b 0 5 ba a 6 abc c 4 7 cb b 8 bab b 5 9 baba a 8
25 DT Union-Find - partitie van {,,n} met namen - union, find Priority Queue - verzameling objecten met prioriteit( ) - isempty, insert, findmax, deletemax Double Ended Priority Queue - verzameling objecten met prioriteit( ) - isempty, insert, findmax, deletemax, findmin, deletemin Dictionary - verzameling sleutels( ) met betekenis - isempty, insert(k,i), find(k), delete(k)
26 zoeken op sleutel (uniek) implementaties: adt: dictionary lijsten bomen geordend - ongeordend array - pointer skip lists binaire zoekboom, trie (strings) VL boom, B-bomen, red-black zelforganiserend move-to-front (ongeordende lijst) splay tree (binaire zoekboom) astabellen
27 skip lists perfect praktijk: random oogtes DM: cult data structure
28 binaire zoekboom (bzb) LWR-ordening K <K >K O(n) vs. O(lg n)
29 of binaire zoekboom (Knut) and a as are at for in be e by ad is but from ave er I is it tat on not te or tis to was wit wic optimaal vgl you
30 te binaire zoekboom (Knut) a are and as at of in I for be e by ave but ad on is it is er or not tat tis to was wit you wic gretig 4.04 vgl from
31 verwijderen in bzb : twee kinderen? verwissel knoop met voorganger geen r-kind : verwijder knoop, en verbind enig kind met grootouder basismetode, zie VL- en B-bomen
32 binaire boom 3 uitgebreide boom padlengte I= = interne padlengte I externe padlengte E E= =5 succes: (I+n)/n mis: E/(n+) E = I + n zoeken in bzb
33 3 4 4! volgordes 4 bomen gemiddelde boom spiegelbeelden padlengte gemiddeld 4 5 / 6 4 8x 4x x
34 gemiddelde boom geldt ook voor n Weiss: p.4,78/9 I n = n- + (I 0 +I +...+I n- )/n I n- =n-+ (I 0 +I +I +...+I n- )/(n-) aftrekken dan n I n -(n-) I n- = n-+ I n- I n /(n+) = I n- /n + /(n+) - /n (n+) I n- /n = I n- /(n-) + /n - /(n-) n... I / = I 0 / + / - / O(ln n) n/(n+)
35 b a- f(x)dx b i= a f(i) b+ a f(x)dx afscatten a vb. b n n+ i x i= stijgende functie! bij dalende functie tekens omklappen n+ [ ln x] = ln(n ) dx = + n i= n n n [ ln x] = ln(n) = + + dx = + + i i x i=
36 zoekbomen: rotaties B B 3 3 enkele rotatie (naar rects) c 4 B 3 B c 3 4 gebruikt in VL, red-black, BB- -, splay, treap dubbele rotatie (naar rects)
37
38 delson-velskii & Landis (96) - binaire zoekboom & oogte gebalanceerd: verscil oogte R-L is -,0,+ + VL bomen oogte logaritmisc in aantal knopen erstel mbv. rotaties toevoegen max. één rotatie verwijderen eraalde rotaties 0 + implementatie recursief vs. top-down iteratief balans vs. expliciete oogte +
39 (toevoegen linkerzijde, recterzijde symmetrisc) VL-bomen: toevoegen +/0 + 0/- -/- + 0 B + + kijk bottom-up +/0 oogte verandert niet. stop. 0/- oogte subboom neemt toe. vervolg bij ouder. -/- erstel balans met rotatie oogte als oorspronkelijk. stop. maximaal één (dubbele) rotatie
40 VL-bomen: toevoegen 0/± voor/na laagste 0 ±/±0 ok ±/± dan rotatie
41 B -/- laagste punt met balans 0 VL-bomen: rotaties 0/+ + 0/- B c -/- 0/± + + enkele rotatie + + B B 0 + c of B 0 c of dubbele rotatie (óók: B zèlf toegevoegd)
42 VL-bomen: toevoegen vb. 0/+ 0/+ 0/- 0/- B B C +/0 0/- 4 3 C -/- 0/- 3 4 LR 0 top-down kijk naar laagste punt met balans 0 + B 0 3 C + 4
43 VL-bomen: verwijderen - - 0/+ +/+ - - B B totale oogte boom verandert niet (klaar) -/ /+ - B + 0 B oogte verandert: bekijk effect ogerop
44 VL verwijderen: gevallen voor 0,- na +/+ C ε B - B C 0,+ - +/+ C C oogte ok! - al gezien /+ - C C
45 VL verwijderen: keuze + + +/+ B + C 0 +/+ ε B C RR RL -,0 + B + B C C of keuze tussen twee rotaties beter enkel problemen als ε=-, =- 0 B + - C + +
46 VL verwijderen: voorbeeld verwijderen weer andere oogte etc.
47 maximale oogte VL-bomen minimaal aantal knopen n bij oogte f : ϕ : f = + f - + f ( ) ( ) φ = ϕ + - n lg(n+),4 lg(n+) - 0,3
48 Bayer McCreigt (97) grote bestanden, externe opslag B-bomen gegeneraliseerde zoekboom: meerdere kinderen B-boom van orde m max m kinderen min m/ kinderen (uitgez. wortel) uniforme oogte sleutel tussen kinderen (één sleutel minder dan kinder)
49 m=5: max 5 kind, 4 sleutels min 3 kind, sleutels B-bomen: toevoegen
50 m=5: max 5 kind, 4 sleutels min 3 kind, sleutels B-bomen: toevoegen (3) () ()
51 B-bomen: verwijderen voorganger uit blad alen. blad verwijderen 3. evt. lenen van buur - via ouder m=5: max 5 kind, 4 sleutels min 3 kind, sleutels
52 B-bomen: verwijderen voorganger uit blad alen. blad verwijderen 3. evt. lenen van buur - via ouder kan niet samenvoegen m=5: max 5 kind, 4 sleutels min 3 kind, sleutels
53 B F red-black trees C D E G H boom orde m=4 F B D C E 7 B C 3 4 G H 8 9 F D E G H oriz-vert rood-zwart
54 rood-zwart definitie rood-zwart boom binaire zoekboom knopen zwart of rood gelijk aantal zwarte knopen op elk pad van wortel naar extern blad rode knoop eeft geen rood kind wortel is zwart B F B-boom van orde 4 sleutel tussen kinderen uniforme oogte min kinderen (uitgez. wortel) max 4 kinderen B F B F C D E C D E
55 toevoegen in -4 boom rood-zwart toevoegen erstel rood-zwart boom oom rood flag flip oom zwart dubb. rot toegevoegd 44
56 toevoegen: rode knoop, top-down als bzb & B-boom rood-zwart operaties rotatie: erstel vorm rood-zwart knoop-cluster oom zwart rotatie flag flip: bottom-up splitsen knopen oom rood flag flip nieuw rood wortel: zwart maken wanneer rood
57 m- m/ - m/ - top-down B-boom top-down: bij toevoegen langs pad maximale knopen alvast splitsen:- onderaan plek vrij m=4 & rood-zwart 5 8 flag x dubb. flip rot x geen rood-rood?!
58 sleutels S K adressen asen synoniemen botsingen keuze adresfunctie snel te berekenen goede spreiding clustering primair, secundair zoeken in O() tijd mits weinig botsingen en clustering tabelgrootte adresfunctie aanbod sleutels
59 sleutels perfecte astabel K S adressen statisc gebruik: S bekend te bepalen zonder botsingen x ε S? bepaal (x) kijk op adres (x): x aanwezig x ε S andere sleutel x ε S
60 perfecte astabel vb. do 3 end 4 else 5 case 6 downto 7 goto 8 to 9 oterwise 0 type wile const 3 div 4 and 5 set 6 or 7 of 8 mod 9 file 0 record packed not 3 ten 4 procedure 5 wit 6 repeat 7 var 8 in 9 array 30 if 3 nil 3 for 33 begin 34 until 35 label 36 function 37 program (begin) = = 33 (ulp) = = 34 (forward) = = a l 5 u 4 b 5 m 5 v 0 c n 3 w 6 f 5 p 5 y 3 g 3 r 4 5 s 6 rest 0 i 3 t 6 (key) = L + g(key[]) + g(key[l]) lengte Cicelli
61 truncation eerste/laatste bits extraction keuze uit bits (let op!) folding tel segmenten op mid-squaring kwadrateer, neem midden slect bij nullen as-functies radix-conversion c l c c 0 Σ c i 56 i a Σ c i α i = 0 = α+c i bv. α=65599 ( 6 ) (i=l 0) division mod M M ar b ±c M= r dan laatste bits veel keuze oneven p(k) M priem eel mooi! p(k) = K mod(m-) + òf mod(m-) multiplication adres fract(φk) M φ irrationeel
62 voorbeeld C++ compiler /* Return a as-code for te string. */ as_table_key k; { s = (const unsigned car *) k; as = 0; len =0; wile ( (c=*s++)!= \0 ) { as += c + (C << 7); as ^= as >> ; ++len; } as += len + (len << 7); as ^= as >> ; return as; }
63 voorbeeld compiler boek PJ Weinberger C compiler = (<<4)+(*c); if (g = &0xf ) { = ^(g>>4); = ^g; } 0000 g>>4 xor 3 bits cccc
64 caining buckets asen met lijsten lijst xx vast aantal xx xx xx extendible asing
65 asen: open adressering adressen 0,,, M- (tabelgrootte M) pogingen op (K,0)=(K), (K,),, (K,M-) vormen permutatie van adressen lineair: (K,i) = (K) - i c (mod M) toegestaan: ggd(c,m)= pseudo-random: (K,i) = (K) - r i (mod M) r 0 =0,r,, r M- permutatie adressen kwadratisc: (K,i) = (K) - i (mod M) mits M priem, M 3 (mod 4) dubbel: (K,i) = (K) - i p(k) (mod M) p stapfunctie probe function adresfunctie as function onafankelijk: p niet uit te berekenen
66 asen: open adressering lineair primair clusteren buren liggen in elkaars pad secundair clusteren synoniemen volgen zelfde pad (pseudorandom, kwadratisc) dubbel: onafankelijk stapgrootte
67 stapgrootte lineair asen (K,i) = (K mod 0) - 3 i orden tabel anders veel stappen (K,i) = (7 K mod 0) - i
68 asen: verwact aantal zoekstappen vinden plaatsen lineair secundair dubbel ( + ln α + α ln α α ) α α ( + + ln ( α) α α ) α α vulgraad lineair (K)-i c secundair gelijk zoekpad op zelfde adres dubbel (K)-i p(k) p onafankelijk van
69 asen: verwact aantal (plaatje) lineair secundair dubbel 4 0 y vinden ( + ) + ln ln α α α α α plaatsen ( + ) α + ln ( α) α α α x
70 algoritm design manual says: Input description: set of n records, eac identified by one or more key fields. dictionaries Problem description: Build and maintain a data structure to efficiently locate, insert, or delete te record associated wit any query key q. Discussion: [..] In practice, it is more important to avoid using a bad data structure tan to identify te single best option available. How many items te relative number of insertions, deletions, and searc queries?... relative frequency wit wic different keys will be accessed?... individual operations be fast, or... te total amount of work done... be minimized?
Datastructuren 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 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 informatieDatastructuren Uitwerking jan
Datastructuren Uitwerking jan 16 1 1a) Een ADT wordt gekenmerkt door de opgeslagen gegevens en de beschikbare operaties. De Priority Queue bevat en verzameling elementen waarbij elk element en eigen waarde
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 informatieAchtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren
Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=
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 en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 14 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Willekeurig gebouwde zoekbomen Willekeurig gebouwde zoekbomen Hoogte van zoekboom met
Nadere informatieDe volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden.
. a) Een Fibonacci boom (niet te verwarren met een Fibonacci queue) van hoogte h is een AVL-boom van hoogte h met zo weinig mogelijk knopen. i. Geefvoorh =,,,,eenfibonacciboomvanhoogteh(eenboombestaande
Nadere informatieElfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen
lgoritmiek 019/lgoritme van ijkstra lfde college algoritmiek 10 mei 019 lgoritme van ijkstra, Gretige lgoritmen 1 lgoritmiek 019/ynamisch programmeren Programmeeropdracht 3 Lange Reis 0 10 10 1 1 100 0
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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 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 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 informatieTwaalfde college algoritmiek. 23 mei Branch & Bound, Heapsort
College 12 Twaalfde college algoritmiek 23 mei 2013 Branch & Bound, Heapsort 1 Handelsreizigersprobleem Traveling Salesman Problem (handelsreizigersprobleem) Gegeven n steden waarvan alle onderlinge afstanden
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:
Nadere informatieElementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Nadere informatieMinimum Opspannende Bomen. Algoritmiek
Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning
Nadere informatieDatastructuren 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 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 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 informatieAlgoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
Nadere informatieTW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende
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 informatieBasic operations Implementation options
Priority Queues Heaps Heapsort Student questions EditorTrees WA 6 File Compression Graphs Hashing Anything else Written Assignments 7 and 8 have been updated for this term. Each of them is smaller than
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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 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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2005 2006, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Splaybomen
Nadere informatieZiv-Lempel-Welch Compressie
Ziv-Lempel-Welch Compressie Datastructuren, najaar 1998, tweede programmeeropdracht Het ZLW-algoritme Het ZLW compressie algoritme codeert teksten door daarin strings van variabele lengte om te zetten
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieJava Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Nadere informatieTweede college algoritmiek. 12 februari Grafen en bomen
College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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 informatieUitwerking tentamen Algoritmiek 9 juni :00 17:00
Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één
Nadere informatieO(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS
O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde bestanden;
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 informatieHet minimale aantal sleutels op niveau h is derhalve
1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke
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 informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieBomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen
10 Bomen 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 Baarn Hilversum Soestdijk Den Dolder voorbeelden route boom beslisboom Amersfoort Soestduinen + 5 * + 5.1 5.2 5.3 5.4 2 3 * * 2 5.3.1
Nadere informatieBomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 2. Tiende college
10 Bomen deel 2 Tiende college 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 arboretum ongericht 8.8 tree graphs 9.4 rooted trees ch.10 binary trees 2 gericht geordend links/rechts bomen
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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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 informatie2WO12: Optimalisering in Netwerken
2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 27 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com
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 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 informatieDe symmetrische min-max heap
De symmetrische min-max heap Tweede programmeeropdracht Datastructuren, najaar 2006 De symmetrische min-max heap (SMM heap) is een datastructuur waarin getallen (of andere elementen met een lineaire ordening)
Nadere informatie5.4.2 a. Neen: dit lukt alléén met 1, 3, 7 enzovoort. b. Ja: dit lukt met elk aantal knopen! Bijvoorbeeld de volgende boom: 1
c. het langste gerichte pad: 4 2 3 met lengte twee. d. het langste on -gerichte pad is oneindig lang: je mag bijvoorbeeld voortdurend tussen twee knopen heen en weer wandelen. e. ja: elke knoop heeft maximaal
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
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 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 informatieIntroductie in flowcharts
Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,
Nadere informatieDatamodelleren en databases 2011
Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued
Nadere informatieSchriftelijk tentamen Datastructuren Woe 5 jan uur Met uitwerkingen
Schriftelijk tentamen Datastructuren Woe 5 jan 2011 14-17 uur Met uitwerkingen 1.a. Geef een compacte definitie van wat er bij Datastructuren verstaan wordt onder een Abstract Data Type (ADT). b. Werk
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 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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke
Nadere informatieDiscrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren
Nadere informatieIndexen.
Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen
Nadere informatieKortste Paden. Algoritmiek
Kortste Paden Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd s algoritme) Dijkstra s algoritme voor Single Source Negatieve
Nadere informatie29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties
Hashing Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 november 2012 ODE/FHTBM Hashing 29 november 2012 1/30 Hashing Een typisch gebruik van de implementatie
Nadere informatieImplementatie en toepassing van de trie
Implementatie en toepassing van de trie Tweede programmeeropdracht Datastructuren, najaar 2007 Een Trie is een char-aire boom, dwz. een boom waarvan knopen voor elk van de elementen van het type char (
Nadere informatieOpgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.
Opgaven Hash Tabellen Datastructuren, 15 juni 2018, 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 acht
Nadere informatieMinimum Spanning Tree
Minimum Spanning Tree Wat is MST? Minimum spanning tree De meest efficiënte manier vinden om een verbonden netwerk op te bouwen Wat is een tree/boom? Graaf G: een verzameling knopen (vertices): V een verzameling
Nadere informatieDiscrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:
Nadere informatieVierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Nadere informatieGreedy algoritmes. Algoritmiek
Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing
Nadere informatieBomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen. deel 1. Negende college
10 Bomen deel 1 Negende college 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 typen bomen Er zijn drie verschillende typen bomen, die in Schaum over verschillende hoofdstukken verdeeld
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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2010 2011, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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 informatieStacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49
Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen
Nadere informatieDatastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Nadere informatieNormaliseren versie 1.1
Normaliseren versie 1.1 Datamodellering 27 1 Wat is normaliseren? Data organiseren in tabelvorm, zó dat: er minimale redundantie is update operaties (toevoegen, wijzigen, verwijderen) eenvoudig zijn uit
Nadere informatieDoorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Nadere informatieSQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.
BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is
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 informatieOpgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep.
Opgaven Zoekbomen Datastructuren, 15 juni 2016, 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 acht opgaven.
Nadere informatieTweede Toets Datastructuren 26 juni 2019, , Educ-β.
Tweede Toets Datastructuren 26 juni 2019, 17.00 19.00, 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 informatieInsertion: neem item, kijk waar het moet tussengeplaatst worden Selection: neem grootste->1, 2 e grootste->2 Bubble: vergelijk en wissel om
LES 1 Quick Find Array: verbonden indien index gelijk F: cst U: N Quick Union Boom: verbonden indien root gelijk F: kan N, kan M N/2 U: cst Weighted Quick Union boom+lengte: verplaatst kleinste boom perf:
Nadere informatiePreschool Kindergarten
Preschool Kindergarten Objectives Students will recognize the values of numerals 1 to 10. Students will use objects to solve addition problems with sums from 1 to 10. Materials Needed Large number cards
Nadere informatieALGORITMIEK: answers exercise class 7
Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord
Nadere informatieOpgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep.
Opgaven Zoekbomen Datastructuren, 20 juni 2018, 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 acht opgaven.
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 informatieUitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Nadere informatieLineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
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 informatieDivide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Nadere informatieO(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS
O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde
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 informatieTree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen
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 traversal 15 november
Nadere informatieOnafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie
Nadere informatieDATASTRUCTUREN. najaar leesboek. R. van Vliet. H.J. Hoogeboom. Opleiding Informatica. Universiteit Leiden
leesboek DATASTRUCTUREN dictaat najaar 2004 R. van Vliet H.J. Hoogeboom Opleiding Informatica Universiteit Leiden Fouten in de bundel kunt u melden bij R. van Vliet, rvvliet@liacs.nl. Inhoudsopgave 1 Data
Nadere informatieDealer instructie. SE serie 2008 versie 009
Dealer instructie SE serie 2008 versie 009 Inhoudsopgave 1 Dealer F.A.Q... 3 1.1 Dealer frequently Asking Questions... 3 1.2 Initalisatiecodes... 4 1.3 Grafisch bericht (=grafische commerciële boodschap)...
Nadere informatieDATASTRUCTUREN LIJSTEN. Dr. D.P. Huijsmans 12 sept 2012 Universiteit Leiden, LIACS
DATASTRUCTUREN LIJSTEN Dr. D.P. Huijsmans 12 sept 2012 Universiteit Leiden, LIACS EEN ANALOGIE VOOR ABSTRACTE DATATYPEN (ADT) ADT: architectuur + functionaliteit Woon/werk elementen, adressering Mogelijkheden
Nadere informatie