Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven

Slides:



Advertisements
Verwante presentaties
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Advertisements

Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Algoritmische problemen Onbeslisbaar / niet-berekenbaar Geen algoritme mogelijk Tegel- of domino-problemen Woordcorrespondentie-probleem Syntactisch equivalentie.
Datastructuren Quicksort
Recursie: De torens van Hanoi
Hoofdstuk 8: Recursie.
Het ontwerpen van een klasse
Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
Fibonacci & Friends Met dank aan Gerard Tel.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Recursie: De Torens van Hanoi
Frank Stalpers en Ad Baars
Inleidend probleem Data structuur (hiërarchie van classes)
Numerieke Natuurkunde
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Imperatief programmeren nProgramma bestaat uit nRunnen is opdrachten gegroepeerd in methoden één voor één uitvoeren te beginnen met main.
Algoritmiek Object-georiënteerd Programmeren
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
Datastructuren Sorteren, zoeken en tijdsanalyse
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
MICROCONTROLLERS.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Hoofdstuk 4: Statistiek
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
1 Datastructuren Quicksort College 3. 2 Vorige keren  O-notaties  Sorteren: insertion sort, bubble sort  Kosten (n 2 ) tijd in het slechtste geval.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Recursie: het cirkel algoritme van Bresenham
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
De O notatie… Limiet van Bachmann-Landau: Paul Gustav Heidrich Bachmann Edmund Landau
Significante cijfers Wetenschappelijke notatie a • 10b
Welkom! maandag 16 November 2015 Les B-2.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
Informatie beoordelen If else Switch En Wiskunde.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Trillingen en Cirkelbewegingen
4/10/2017 Opleiding BINNENISOLATIE voor thermische renovatie Module 3 Train the trainer – 06/12/ Brugge.
Isaac Newton Omdat een beetje extra bijscholing nooit kwaad kan 
Gerandomiseerde algoritmes
Wageningen University Meteorologie en Luchtkwaliteit
Hoe deel je gesteenten in? Codering; Streckeisen
Handboek Commercieel Budgetteren: toegepast J. Vanhaverbeke & L
Jeugd in het Strafrechtelijk kader Les 3, 2016 ‘Needs’
VAN KEUKENBLAD TOT FRIKANDEL presentatie door Koen Ongkiehong
STUUR DIT AAN EEN SLIMME VROUW... EN AAN ALLE MANNEN... DIE ER TEGEN KUNNEN !!! Na 5000 jaar moppen over vrouwen... uiteindelijk moppen over mannen.
Roundtable De Gefragmenteerde Organisatie
Quel jour sommes-nous aujourd’hui ?
Jorismavo Examenvoorlichting
RECHT VAN SPREKEN FUNCTIONEREN OC’S 2016
Toolbox: ATEX ATmosphere - EXplosive
De wederkomst ophanden? 20 augustus 2017 Urk.
Absolute aantallen en relatieve aantallen
Klaar met de toets? Lees aandachtig het samenvattingenblad hst 6
Welkom Brussel, 25/02/2017.
Recursie in de wiskunde
Gameprogrammeren: Recursie
Periodieke verbanden.
Implementatie Zoekboom
Algemene relativiteitstheorie
ED VERSIE STAND VAN ZAKEN (S79)
Gameprogrammeren: Arrays
Beantwoord zo snel mogelijk de vragen.
15 januari 2019 Stefaan Standaert Riynto Simanjuntak
Python – For loop + strings
Transcript van de presentatie:

Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven Voorbeelden: zoeken Torens van Hanoi machtsverheffen

Algoritme Klassieke voorbeelden: Hoe sorteer je een verzameling gegevens? Hoe zoek je in een geordende verzameling een element?

Algoritme Een algoritme is een eenduidige beschrijving van de wijze waarmee een klasse van problemen in een eindig aantal stappen kan worden opgelost. abu-Ja’far Mohammed ibn-Musa al-Khuwarizmi (negende eeuw, Persisch wiskundige)

Algoritme Een algoritme wordt geïmplementeerd door één of meerdere methods. Preconditie Specificatie van de invoer Nauwkeurige specificatie van elke stap. Correctheid Eindige executietijd Postcondities Side effects

Recursie Standaard voorbeeld: 5! = 5 * 4 * 3 * 2 * 1 4! = 4 * 3 * 2 * 1 5! = 5 * 4! Om 5! te kunnen bereken moet eerst 4! worden berekend. Dit is het kenmerk van recursie.

Recursie Stopt de recursie?? 4! = 4 * 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1 Wiskundigen hebben 0! = 1 gedefinieerd.

Recursieve code int fac(int n) { if (n == 0) return 1; return n * fac(n - 1); }

Opgaven Schrijf recursieve methodes voor: x0 = 1 xn = x * xn - 1 (1 * 3 * 5 * .. (2n - 1)) / *(2 * 4 * 6 .. (2n))

Voorbeeld: zoeken Gegeven een array met integers die oplopend gesorteerd zijn en een getal x. Wat is de index van het array-element dat x bevat? Indien x niet in het array voorkomt, wordt -1 geretourneerd. Voorbeeld: array = { 2, 7, 10, 15} en x = 7. index = 1

Zoeken

Zoeken Het zoeken in het bovenste en onderste gedeelte gebeurt recursief. Recursie stopt als: het middelste element gelijk is aan x; het te doorzoeken gedeelte geen elementen bevat.

Zoeken int zoek(int tabel[], int x, int begin, int einde) { int midden = (begin + einde) / 2; if (begin > einde) return -1; if (tabel[midden] == x) return midden;

Zoeken if (tabel[midden] < x) return zoek(tabel, x, midden + 1, einde); return (tabel, x, begin, midden - 1); }

Torens van Hanoi

Torens van Hanoi

Hanoi void hanoi(int n, int van, int hulp, int naar) { if (n == 0) return; hanoi(n - 1, van, naar, hulp); System.out.println(“schijf “ + n + “ van “ + van + “ naar “+ naar); hanoi(n - 1, hulp, van, naar); }

Machtsverheffen a32 aantal vermenigvuldigingen: 31 a32 = (a16)2 slechts 16 vermenigvuldigingen. a16 = (a8)2 is efficiënter. a10 = (a5)2 a5 = a * (a2)2 Maak onderscheid tussen even en oneven exponenten. Zie 5.1.7. en modulehandleiding.

Toepassingen recursie Sorteer methodes (quicksort, mergesort) “vooruitdenken” bij bordspelen (schaken, dammen) Zoekproblemen Evalueren van rekenkundige expressies Syntactische analyse van code.