De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven Voorbeelden: –zoeken –Torens van Hanoi –machtsverheffen."— Transcript van de presentatie:

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

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

3 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)

4 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

5 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.

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

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

8 Opgaven Schrijf recursieve methodes voor: 1 + 1/2 + 1/3 + 1/4 + ……… 1/n x 0 = 1 x n = x * x n - 1 (1 * 3 * 5 *.. (2n - 1)) / *(2 * 4 * 6.. (2n))

9 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

10 Zoeken

11 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.

12 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;

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

14 Torens van Hanoi

15

16 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); }

17 Machtsverheffen a 32 aantal vermenigvuldigingen: 31 a 32 = (a 16 ) 2 slechts 16 vermenigvuldigingen. a 16 = (a 8 ) 2 is efficiënter. a 10 = (a 5 ) 2 a 5 = a * (a 2 ) 2 Maak onderscheid tussen even en oneven exponenten. Zie en modulehandleiding.

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


Download ppt "Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven Voorbeelden: –zoeken –Torens van Hanoi –machtsverheffen."

Verwante presentaties


Ads door Google