Gerandomiseerd versus recursief algoritme
Gerandomiseerde algoritmen nemen een gevoel van willekeur in hun logica op door willekeurige keuzes te maken tijdens de uitvoering van het algoritme. Door deze willekeur kan het gedrag van het algoritme zelfs voor een vaste invoer veranderen. Voor veel problemen bieden gerandomiseerde algoritmen de meest eenvoudige en efficiënte oplossingen. Recursieve algoritmen zijn gebaseerd op het idee dat de oplossing voor een probleem kan worden gevonden door oplossingen te vinden voor kleinere deelproblemen van hetzelfde probleem. Recursie wordt veel gebruikt om oplossingen te vinden voor problemen in de informatica en veel programmeertalen op hoog niveau ondersteunen recursie.
Wat is een gerandomiseerd algoritme?
Gerandomiseerde algoritmen bevatten een gevoel van willekeur door willekeurige keuzes te maken die de uitvoering van het algoritme begeleiden. Dit wordt meestal gedaan door een reeks willekeurige getallen te nemen die zijn gegenereerd door een pseudowillekeurige nummergenerator als extra invoer. Hierdoor kan het gedrag van het algoritme zelfs voor een vaste invoer veranderen. Quicksort is een algemeen bekend algoritme dat het concept van willekeur gebruikt en het heeft een looptijd van O(n log n), ongeacht de invoereigenschappen. Verder wordt een gerandomiseerde incrementele constructiemethode gebruikt voor het bouwen van constructies zoals een convexe romp in rekengeometrie. Bij deze methode worden de invoerpunten willekeurig gepermuteerd en vervolgens één voor één in de structuur ingevoegd. Het implementeren van een gerandomiseerd algoritme is relatief eenvoudig dan het implementeren van een deterministisch algoritme voor hetzelfde probleem. De grootste uitdaging bij het ontwerpen van een gerandomiseerd algoritme ligt in het uitvoeren van asymptotische analyses voor tijd- en ruimtecomplexiteit.
Wat is een recursief algoritme?
Recursieve algoritmen zijn gebaseerd op het idee dat de oplossing voor een probleem kan worden gevonden door oplossingen te vinden voor kleinere subproblemen van hetzelfde probleem. In een recursief algoritme wordt een functie gedefinieerd in termen van de eerdere versie van zichzelf. Het is belangrijk op te merken dat deze zelfverwijzing een beëindigingsvoorwaarde moet hebben om te voorkomen dat voor altijd naar zichzelf wordt verwezen. De beëindigingsvoorwaarde wordt gecontroleerd voordat naar zichzelf wordt verwezen. De eerste stap van een recursief algoritme is gerelateerd aan de basisclausule van de recursieve definitie van het probleem. De stappen die volgen op de eerste stap hebben betrekking op de inductieve clausules van het probleem. Recursieve algoritmen bieden in veel situaties een eenvoudigere oplossing en staan dichter bij de natuurlijke manier van denken dan het iteratieve algoritme voor hetzelfde probleem. Maar over het algemeen hebben recursieve algoritmen meer geheugen nodig en zijn ze rekenkundig duur.
Wat is het verschil tussen een gerandomiseerd en een recursief algoritme?
Random-algoritmen zijn algoritmen die een gevoel van willekeur gebruiken door willekeurige keuzes te maken die de uitvoering van het algoritme kunnen beïnvloeden, terwijl recursieve algoritmen algoritmen zijn die gebaseerd zijn op het idee dat een oplossing voor een probleem kan worden gevonden door te vinden oplossingen voor kleinere deelproblemen van hetzelfde probleem. Vanwege de willekeur in de willekeurige algoritmen kan het gedrag van het algoritme zelfs voor dezelfde invoer veranderen (in verschillende uitvoeringen van het algoritme). Maar dit is niet mogelijk in recursieve algoritmen en het gedrag van een recursief algoritme zou hetzelfde zijn voor een vaste invoer.