Gerandomiseerd versus recursief algoritme
Gerandomiseerde algoritmen nemen een gevoel van willekeur op in de logica door willekeurige keuzes te maken tijdens de uitvoering van het algoritme. Vanwege deze willekeurigheid 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 subproblemen van hetzelfde probleem. Recursie wordt veel gebruikt om oplossingen te vinden voor problemen in de informatica en veel geavanceerde programmeertalen 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 door een pseudowillekeurige nummergenerator worden gegenereerd als een extra ingang. Hierdoor kan het gedrag van het algoritme veranderen, zelfs voor een vaste invoer. QuickSort is een algemeen bekend algoritme dat het concept van willekeurigheid gebruikt en het heeft een looptijd van O (n log n), ongeacht de invoereigenschappen. Verder wordt gerandomiseerde incrementele constructiemethode gebruikt voor het bouwen van structuren zoals convexe romp in de berekeningsgeometrie. Bij deze methode worden de invoerpunten willekeurig gepermuteerd en vervolgens één voor één ingevoegd in de structuur. Het implementeren van een willekeurig algoritme is relatief eenvoudig dan het implementeren van een deterministisch algoritme voor hetzelfde probleem. De grootste uitdaging bij het ontwerpen van een willekeurig algoritme ligt in het uitvoeren van asymptotische analyse 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 zelfreferentie een beëindigingsvoorwaarde moet hebben om te vermijden dat ze voor altijd naar zichzelf verwijst. De beëindigingsvoorwaarde wordt gecontroleerd voordat er 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 zijn gerelateerd aan de inductieve clausules van het probleem. Recursieve algoritmen bieden in veel situaties een eenvoudiger oplossing en het is dichter bij de natuurlijke manier van denken dan het iteratieve algoritme voor hetzelfde probleem. Maar over het algemeen vereisen recursieve algoritmen meer geheugen en zijn ze rekenkundig duur.
Wat is het verschil tussen een gerandomiseerd en een recursief algoritme?
Willekeurige algoritmen zijn algoritmen die een gevoel van willekeurigheid 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 oplossingen te vinden voor kleinere deelproblemen van hetzelfde probleem. Vanwege de willekeurigheid in de willekeurige algoritmen, zou het gedrag van het algoritme zelfs voor dezelfde invoer kunnen 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.