De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven

Verwante presentaties


Presentatie over: "Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven"— 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:
x0 = 1 xn = x * xn - 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 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.

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 Torens van Hanoi

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 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 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"

Verwante presentaties


Ads door Google