DATASTRUCTUREN VOOR GESORTEERDE DATA
|
|
|
- Hugo Timmermans
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 15 DATASTRUCTUREN VR GESRTEERDE DATA Dr. D.P. Huijsmans 18 sept 2013 Universiteit Leiden, LIACS
2 NDERWERPEN 18 SEPT - Tot nu toe rijen/lijsten met beperkte toegang - stack: bovenaan (LIF) - cyclisch array of lijst: vooraan/achteraan (FIF) - linked list implementatie DCLL (zie ADT uitwerkingen) - geheugengebruik beperken: array -> verbonden lijst - geordende lijsten: tussenin - nadeel sortering bij verbonden lijst: (n) zoeken - binary search voordeel sortering -> BST: (logn) 2
3 MAGNEETBAND ANALGN VR RECRDS (VASTE F VARIABELE LENGTE) In plaats van een serie bytes kan een magneetband ook gedacht worden als een sequentie van records: - van vaste lengte (steeds m bytes/record lezen/schrijven) - van variabele lengte (steeds zoveel bytes lezen totdat ER byte code bereikt is) eor eor eor eor eor - (N) toegang (serieel voor/achteruit) 3
4 VERGANG MAGNEETBAND NAAR HARDE SCHIJF Magneetband: toegang serieel Harde schijf: opgedeeld in sectoren (typisch veelvoud van 512 bytes elk) die random-access toegankelijk zijn vergang jaren (19)70 4
5 ADT_SINGLELINKEDRECRDSFILE RANDMACCESS SCHIJFGEHEUGEN In plaats van byte voor byte gaat de I/ met vaste of variabele lengte records (ER) die op het eind een pointer hebben naar het volgende record (NR); Laatste record in de rij bevat als next pointer een NR=EF I/ functie die als bij een byte stream file met als uitwisseleenheid het record (i.p.v. de byte) en beperking tot alleen m records voorwaarts kunnen spoelen record Bloknr nextrec EF 5
6 ADT_RANDMACCESSFILE RANDMACCESSSCHIJFGEHEUGEN Vaste en ook variabele lengte records kunnen sneller benaderd worden bij een opzet waarin naast de afzonderlijke records een array met record-keys wordt bijgehouden; vanuit dit array kan elk record direkt benaderd worden via de pointer die bij de sleutel(key) opgeslagen wordt. Array van sleutels kan gesorteerd gehouden worden voor snel opzoeken bepaalde key. key 1e blok record
7 UITBUITEN VRDELEN GESRTEERDE LIJST DRZEKEN pgeslagen data elementen oplopend op waarde gesorteerd (geindexeerd) Maakt snel zoeken naar aanwezigheid en positie gezochte waarde mogelijk in array Methode binary search (herhaalde tweedeling): Bekijk middelste waarde en vergelijk met gezochte Als gelijk -> klaar return index Als waarde< gezochte bekijk middelste linkerdeel Als waarde > gezochte bekijk middelste rechterdeel Randvoorwaarden: Rij even/oneven aantal midden? stopcriterium 7
8 BINAIR ZEKEN NAAR GEZCHTE WAARDE IN GESRTEERD ARRAY A[1..N] BS Algoritme: Initieel: Stap=N; index=0; Dir=+1; Herhaal zolang Stap>1; anders return(0): Halveren Stap(grootte) en aanpassen Index: Functie half(stap): Test = : Stap even-> Stap/2, anders (Stap+1)/2 Index=Index+Dir*Stap; Als A[index]= gezochte waarde -> return(index) Richting volgende aanpassing index als nog niet gevonden: Dir=-1; als A[Index]< gezochte waarde Dir=+1 8
9 GESRTEERD ARRAY ZEK VRBEELD Zoeken naar A[index]= i a b c d e f g h i j k 6 9 i? init ronde1 ronde2 Stap Index Test < = Dir 1 1 Return
10 GESRTEERD ARRAY ZEK VRBEELD Zoeken naar A[index]= h a b c d e f g h i j k h? init ronde1 ronde2 ronde3 ronde4 Stap Index Test < > < = Dir Return
11 VERBRGEN VERNDERSTELLING BINARY SEARCH P GESRTEERD ARRAY Wat gebeurt er als waardes meermalen voorkomen? Hoe zou je de datastructuur aanpassen zodat alle voorkomens van een bepaalde waarde gerapporteerd kunnen worden? 11
12 BINAIR ZEKALGRITME P GESRTEERD ARRAY SLUITEND? Zelfs bij veronderstelling dat elke waarde in het array maar 1 maal voorkomt Zelf uitzoeken komende 5 minute (met BS algoritme op volgende slide): Ga na hoe algoritme uitpakt voor gesorteerde array s die maar 1,2 of 3 lang zijn; Kun je in die gevallen waar het mis loopt, het algoritme zo aanpassen dat het in alle gevallen correct werkt? 12
13 BINAIR ZEKEN NAAR BEPAALDE WAARDE IN GESRTEERD ARRAY A[1..N] BS Algoritme met tekortkomingen: Initieel: Stap=N; index=0; Dir=+1; Herhaal zolang Stap>1; anders return(0): Halveren Stap(grootte) en aanpassen Index: Functie half(stap): Test = : Stap even-> Stap/2, anders (Stap+1)/2 Index=Index+Dir*Stap; Als A[index]= bepaalde waarde -> return(index) Richting volgende aanpassing index als nog niet gevonden: Dir=-1; als A[Index]< bepaalde waarde Dir=+1 13
14 GESRTEERD ARRAY N=3 VRBEELD a b c 2 1 3? init ronde1 ronde2 ronde2 ronde3 Stap stop Index of 3 1 of 3 Test <> = <> Dir Return 0 0 a of c 0 14
15 GESRTEERD ARRAY N=2 VRBEELD b 1 c a? init ronde1 ronde2 Stap 2 1 stop Index 0 1 Test < Dir 1-1 Return c? init ronde1 ronde2 Stap 2 1 stop Index 0 1 Test > Dir 1 1 Return Element 2 kan niet bezocht worden 15
16 GESRTEERD ARRAY N=1 VRBEELD b b? init ronde1 Stap 1 stop Index 0 Test Dir 1 Return 0 0 Stopcriterium stap>1 faalt bij n=1 of 2 Voor N=1 kan stap initieel minstens 2 zaak oplossen, Maar voor N=2 blijft 2e element buiten bereik Vooraf test of A[N] voldoet zou dit oplossen, maar duur gezien Extra stap Element niet gevonden! 16
17 CRRECT BINARY SEARCH ALGRITME VR ELKE N In programming pearls staat een betere aanpak: A[N] gesorteerd array N=[1..Max] Gezocht index van A[i]=target Initieel: low=1,high=max Zolang low<=high (in C++: 0 en Max-1) mid=(low+high)/2 (naar beneden afgerond) Als A[mid]=target return(mid) Anders Als A[mid]<target low=mid+1 Else high=mid-1 Return(0) 17
18 LAAT NTDEKTE BUG IN BINARY SEARCH ALGRITME Pas laat is nog een mogelijke tekortkoming in dit voorbeeld algoritme ontdekt: De regel: mid=(low+high)/2 kan als mid een 16 of 32 bit Integer mogelijk leiden tot overflow bij de bewerking low+high; plossing: een echt voor alle gevallen correct algoritme zou mid als volgt kunnen bepalen: f mid=low/2+high/2 of f mid=low + (high-low)/2 (nog efficienter) 18
19 CRRECT BINARY SEARCH ALGRITME VR ALLE N [1..MAX] VRBEELD a b c d e f g h i j k l m n o m? initieel ronde1 ronde2 ronde3 ronde4 Mid Test < < > = Low High return PAUZE
20 BINARY SEARCH ZEKEN BIJ EEN GESCHIKTE VERBNDEN STRUCTUUR Nadeel enkel- of dubbel-verbonden lijsten met gesorteerde rij elementen Geen binary search mogelijk Alternatieve opzet voor met pointers verbonden gesorteerde elementen Een twee-deel element met pointers 20
21 BINAIRE ZEK BM (KNP STRUCTUUR) uder knoop met maximaal 1 voorouder en maximaal 2 kinder knopen Als eenzijdig verbonden structuur: Kind-links pointer Als tweezijdig verbonden structuur: Kind-links pointer uder waarde Kind-van pointer uder waarde Leeg knoop element Kind-rechts pointer Kind-rechts pointer root-element Verbinding: edge link arc uder waarde: key:datarecord nil pointer nil pointer nil pointer nil waarde nil pointer Kindlinks pointer key Kindrechts pointer 21
22 BINARY SEARCH TREE UDER KNP MET 2 KINDER KNPEN (L&R) V EN 1 VRUDERKNP Dit is eigenlijk de informatie nodig in 1 knoop nil L R Door samen delen van gerichte pointers kan een ongerichte binaire boom structuur worden opgebouwd die zowel van boven naar beneden, van beneden naar boven en langs een willekeurig pad doorlopen kan worden 22
23 VEREENVUDIGDE GRAFISCHE VRSTELLING KNP IN BST Voorouder pointer niet apart nodig als adres voorouder op stack gezet wordt L R L Pointer naar root geeft start boomstructuur aan W R L R Bouwstenen zonder weergave nil pointers; voorouder pointer en richting pointer 23
24 PADEN IN EEN BM Knoop zonder voorouder is root (wortel) Knoop met als kinderen nil pointers is leaf (blad) Geordende Boom: kindknopen in bepaalde volgorde (van L naar R b.v.) Simpel pad: verbinding tussen root en leaf waarbij een verbinding maar 1 maal gebruikt wordt Lengte van het pad: Aantal knopen langs pad Hoogte (height) van een Tree: Aantal knopen in langste simpel pad Niveau (level) van een Tree: Knopen op zelfde simpel pad afstand van wortel 24
25 HANDIGE AFLPVLGRDES BST BMEN Paden waarin elke knoop precies 1 maal opgenomen wordt ook al wordt hij vaker gepasseerd: uders gaan voor; niveau voor niveau geordend (breadth first): m.b.v. FIF lijst Kinderen gaan voor (depth first) m.b.v. stack: Preorder: LR Inorder:LR voor gesorteerde lijst in BST Postorder:LR L R L R L R
26 BST TEVEGEN KNP MET WAARDE KEY Mogelijke beginsituaties na zoeken invoegpositie (currentknoop): Lege boom: creëer een (root)knoop met waarde key; pointers naar kinderen nil, rootpointer van nil -> (root)knoop. Moet in linker subtree van current knoop: creëer nieuwe knoop waarvan key de waarde wordt; linkerpointer currentknoop -> nieuwe knoop; nieuwe knoop met overname van linkerpointer current knoop en nil pointer rechter; currentknoop-> nieuwe knoop Moet in rechter subtree van currentknoop: analoog aan linker toevoeging 26
27 BST: RT F LEAF LINKS INVEGEN BIJ CURRENT KNP Voor: Na: L R L R 27
28 BST: NIET RT/LEAF INVEGING LINKS INVEGEN MET LEGE RECHTER L? L? L??? L? 28
29 BST: RECHTS INVEGEN BIJ CURRENT KNP Voor: Na: R L L R 29
30 BST: WEGHALEN WAARDE AAN BEGIN/EIND Weglaten van een waarde in een BST zou kunnen gebeuren door de opgeslagen waarde in een knoop op nil te zetten Als we ook een knoop weg willen halen uit de BST dan moeten we de volgende gevallen onderscheiden: BST is leeg -> niets doen BST alleen een root knoop, delete root knoop, zet BST pointer naar nil, size -> 0 Knoop is leaf (nil pointers als kinderen): knoop daarboven die hier naar toe wees-> nil 30
31 BST WEGHALEN WAARDE NDERWEG Delete is alleen makkelijk als de weg te halen waarde in een knoop zit met alleen een linker of een rechter subtree: Voor: Na: L? L?? L? L?? 31??
32 BST: DELETE KNP MET 2 SUBTREES Als er onder een weg te halen knoop twee subtrees hangen kan maar 1 ervan makkelijk 1 nivo naar boven opschuiven; wat te doen met de elementen in de overblijvende subtree? plossing1: verhuis waardes binnen boom plossing 2: loop de resterende subtree af en voeg elk van z n knoopwaardes 1 voor 1 aan de BST toe plossing 3: merge de 2 resterende bomen 32
33 BST: DELETE RT KNP W Net zo lastig en vergelijkbaar is de situatie in een goed gevulde gebalanceerde boom waarin we de root knoop willen weghalen. plossing: kopieer meest rechtse element in linker subtree naar root en delete de knoop waarin mre oorspronkelijk stond? L? mre? L 33?
34 MGELIJKE BINAIRE BM PSLAG VRBEELD UITWERKEN a b c d e f g h i j k Hoe ziet de BST eruit bij de volgende Invoegvolgorde: f,c,i,b,d,h,j,a,e,g,k? 34
35 MGELIJKE BINAIRE BM PSLAG VRBEELD a b c d e f g h i j k f c i b d h j a e g k Gebalanceerde BST: Invoegvolgorde: f,c,i,b,d,h,j,a,e,g,k Zoeken hierin bijna (logn) 35
36 MGELIJKE BINAIRE BM PSLAG VRBEELD UITWERKEN a b c d e f g h i j k Hoe ziet de BST eruit bij de volgende Invoegvolgorde: a,b,c,d,e,f,g,h,i,j,k? 36
37 NGEBALANCEERDE PSLAG IN BST VERGELIJKBAAR MET GESRTEERDE ENKEL VERBNDEN LIJST a b c d e f g h i j k a b c d e f g Dit resultaat heet ook wel backbone structuur (komt terug!) 37 Invoegvolgorde: a,b,c,d,e,f,g,h,i,j,k Zoeken hierin (N) h i j k
38 AANTAL TWEEDELINGEN EN AANTAL KNPEN IN VLLE BST Wortel (root): n=1 knoop (niveau h=1) 1 tweedeling: n=3 knopen (niveau h=2): tweedelingen: n=7 knopen (niveau h=3): h-1 tweedelingen: n=2 h -1 knopen (niveau h=log 2 (n+1)) 38
39 GESRTEERD EN GEBALANCEERD HUDEN Zaak is algoritmes voor BST zo te ontwerpen dat: Afloopvolgorde en sortering samenvallen De boom zo gebalanceerd mogelijk blijft: Bij opbouw van de BST Bij wijzigingen op de BST 39
40 BST PBUWEN VANUIT GESRTEERD ARRAY Een goed gebalanceerde BST kan makkelijk worden opgebouwd als de waardes vooraf bekend zijn Zet de waardes in een array Sorteer het array Voeg elementen aan de BST toe door het gesorteerde array recursief met binair zoekadressering te doorlopen a b c d e f g h i j k l m n o
41 DRZDEK VER BST Binary Search Tree H6.1, H6.2, H6.3 41
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
Algoritmiek. 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
Tree 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
Datastructuren; (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
Doorzoeken 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
Elementary 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
Tweede 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)
Tree 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
Datastructuren 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
Inleiding 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
Vierde 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
Datastructuren 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
Vierde 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
Programmeermethoden. 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,
Java 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,
Vierde 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
Combinatorische Algoritmen: Binary Decision Diagrams, Deel III
Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands [email protected] 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse
Inleiding 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
Datastructuren: 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)
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
Divide & 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:
Datastructuren 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
Zevende 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
Datastructuren 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):
Een gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Uitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
Onafhankelijke 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
Programmeren 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)!
OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.
Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven
Recursion. 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
Grafen en netwerken I Datastructuren en doorzoeken. Algoritmiek
Grafen en netwerken I Datastructuren en doorzoeken Algoritmiek 1 Inleiding 2 Netwerken Veel toepassingen, bijvoorbeeld: Sociale netwerken, electrische netwerken, wegennetwerken, communicatie netwerken,
Uitwerking 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
Bomen. 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
Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.
Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee
Derde 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
Uitwerking 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.
Programmeermethoden. 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,
Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,
O(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;
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
recursie 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
Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur
Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, 10.00 13.00 uur Opgave 1. a. Een toestand wordt bepaald door: het aantal lucifers op tafel, het aantal lucifers in het bezit van Romeo,
Uitgebreide 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.
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Opgaven 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.
Minimum 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
Examen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Datastructuren: 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:
Lineaire 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
Tiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep.
Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 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
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Stacks 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
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
ALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
ALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Algoritmen, 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
Tweede 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
DATASTRUCTUREN BACHELOR INFORMATICA
1 DATASTRUCTUREN BACHELOR INFORMATICA NAJAAR 2013 Dr. D.P. Huijsmans Liacs, Universiteit Leiden College 1 4 sept 2013 OPZET COLLEGE DATASTRUCTUREN Hoorcollege: woe 11:15-13:00 uur zaal 174 Docent: Dr.
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search
Recapitulatie: Ongeïnformeerd zoeken Zoekalgoritmen (009 00) College : Ongeïnformeerd zoeken Peter de Waal, Tekst: Linda van der Gaag een algoritme voor ongeïnformeerd zoeken doorzoekt de zoekruimte van
