Algoritme versus computerprogramma
Waar een algoritme de beschrijving is van een oplossing van een probleem daar is een computerprogramma (in een of andere programmeertaal) de implementatie van dat algoritme. De verschillende manieren om tegen een probleem aan te kijken en te beschrijven hebben in de loop van de jaren ook verschillende vormen van programmeren opgeleverd: imperatief programmeren, object-georienteerd programmeren, aspect-georienteerd programmeren, logisch programmeren, symbolisch programmeren, functioneel programmeren.
In imperatief programmeren worden instructies expliciet opgeschreven waarbij de berekening bovenaan begint en vervolgens stap voor stap naar beneden verloopt. Formeel heet dit de control flow van een algoritme.
Een andere manier om tegen algoritmes aan te kijken is functioneel programmeren. In programma's van dit type worden algoritmes gezien als wiskundige functies die elkaar kunnen aanroepen. Diezelfde functies kunnen ook aan variabelen worden toegewezen en zelfs als parameter in een functieaanroep gebruikt worden.
Voorbeeld
Een voorbeeld van een algoritme is het algoritme van Euclides, dat de grootste gemene deler van twee getallen in de variabelen A en B geeft:
(define (ggd a b) (cond ((= b 0) ;; eindconditie: b gelijk aan 0, a is grootste gemene deler (abs a)) (else ;; iteratieslag (ggd b (remainder a b)))))
Het resultaat van deze berekening zal de grootste gemene deler zijn van A en B. Algoritmes
- Sorteren
- genetische algoritmen
Gerelateerde onderwerpen