Wat is een algoritme?
In zijn puurste betekenis is een algoritme een wiskundig proces om een probleem op te lossen met behulp van een eindig aantal stappen.
In de wereld van computers is een algoritme de verzameling instructies die niet alleen definiëren wat er gedaan moet worden, maar ook hoe het gedaan moet worden.
Techopedia legt een algoritme uit
De beste manier om een algoritme te begrijpen is waarschijnlijk door het te zien als een recept. Er zijn veel manieren om koekjes te bakken, maar door een recept te volgen weet een bakker dat hij eerst de oven moet voorverwarmen, dan de bloem moet afmeten, boter, chocoladeschilfers enzovoort moet toevoegen totdat de gewenste koekjes klaar zijn.
Met behulp van algoritmes kan een programmeur of computerwetenschapper zijn machine vertellen om database A te ondervragen voor de verkoopcijfers van afgelopen maand, deze te vergelijken met de voorgaande maand en dezelfde maand vorig jaar, en dit vervolgens weer te geven in een staafdiagram.
Meng meerdere algoritmen en je hebt een werkend computerprogramma.
Zoals te verwachten is, zijn er talloze soorten algoritmen voor vrijwel elk wiskundig probleem dat er is om op te lossen. Er zijn:
- Numerieke algoritmen.
- Algebraïsche algoritmen.
- Geometrische algoritmen.
- Sequentiële algoritmen.
- Operationele algoritmen.
- Theoretische algoritmen.
Er zijn ook verschillende algoritmen genoemd naar de vooraanstaande wiskundigen die ze hebben uitgevonden:
- Shor’s algoritme.
- Girvan-Newman algoritme.
- Verschillende Euclidische algoritmen.
Er zijn er ook die genoemd zijn naar het specifieke probleem dat ze oplossen, zoals:
- Bidirectioneel zoekalgoritme.
- K-weg samenvoeg algoritme.
Op het gebied van computers zijn de meeste algoritmen gericht op het oplossen van problemen met gegevensbeheer en -analyse.
Top algoritmen voor computers
(Volgens de Ohio State University)
Sorting
Gegevens ordenen op een efficiënte en bruikbare manier. Hieronder vallen quick sort, merge sort, counting sort en andere;
Searching
Het vinden van belangrijke gegevens in gesorteerde gegevenssets. Binair zoeken wordt gebruikt voor het zoeken in lineaire gegevensstructuren en gesorteerde gegevenssets. Depth/Breadth First Search (DFS/BFS) wordt gebruikt voor gegevensstructuren in grafieken en wordt gebruikt door zoekmachines voor webcrawling.
Hashing
Vergelijkbaar met zoeken, maar met een component voor indexering en sleutelidentificatie. Hashing biedt superieure resultaten omdat het een sleutel toewijst aan bepaalde gegevens;
Dynamisch programmeren
Zet grotere, complexe problemen om in een reeks kleinere problemen;
Exponentieel door kwadrateren (EbS)
EbS, ook bekend als binaire exponentiatie, versnelt de berekening van grote gehele getallen, veeltermen, vierkante matrices en andere complexe problemen;
Matching en parseren van strings
Ontworpen om patronen te vinden in grote gegevenssets met behulp van vooraf gedefinieerde termen en beperkingen;
Primaliteitstest
Bepaalt priemgetallen deterministisch of probabilistisch; meestal gebruikt in cryptografie.
Netwerken leunen ook zwaar op algoritmen, die alles regelen van pakketroutering en verkeersbeheer tot beveiliging en encryptie. Traditioneel waren routeringsalgoritmen grotendeels statisch in die zin dat ze vaste punten van netwerkactiviteit vastlegden.
Recentelijk zijn netwerkproviders echter overgeschakeld op meer adaptieve algoritmen die in een oogwenk wijzigingen kunnen aanbrengen als reactie op verkeers- of topologie-overwegingen.
Algoritmes liggen aan de basis van zowat alles in de digitale wereld, van snelle aandelenhandel tot automatische vaatwassers.
Nu technologie nog alomtegenwoordiger wordt en we vertrouwen op slimme auto’s, slimme huizen, slimme steden, kan het lijken alsof we te maken hebben met een geheel nieuwe vorm van bewustzijn op deze planeet, een die loopt, praat en denkt.
In werkelijkheid zijn het echter gewoon een heleboel getallen die een heleboel algoritmes doorlopen.