Verschil tussen willekeurig en recursief algoritme

Anonim

Randomized vs Recursive Algorithm

Randomized algorithms bevatten een gevoel van willekeur in zijn logica door willekeurige keuzes te maken tijdens de uitvoering van het algoritme. Door deze willekeurigheid kan het gedrag van het algoritme zelfs veranderen voor een vaste invoer. Voor veel problemen bieden willekeurige algoritmen de eenvoudigste 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 computerwetenschap en veel op het vlakke programmeertalen ondersteunen recursie.

Wat is een Randomized Algorithm?

Randomized algorithms bevatten een gevoel van willekeurigheid door willekeurige keuzes te maken die de uitvoering van het algoritme begeleiden. Dit wordt meestal gedaan door een reeks willekeurige getallen te genereren die door een pseudorandom-nummergenerator worden gegenereerd als aanvullende invoer. Hierdoor kan het gedrag van het algoritme zelfs veranderen 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 invoer eigenschappen. Verder, willekeurige incrementele bouwmethode wordt gebruikt voor het bouwen van structuren zoals een convexe romp in berekeningsgeometrie. In deze methode worden de invoerpunten willekeurig geperforeerd 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 analyse voor tijd en ruimte complexiteit.

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 om op te merken dat deze zelfverwijzing een beëindigingsvoorwaarde moet hebben om te voorkomen dat het voor altijd wordt verwezen. De beëindigingsvoorwaarde wordt gecontroleerd voordat u zichzelf verwijst. De initiële stap van een recursief algoritme houdt verband met de basisclausule van de recursieve definitie van het probleem. De stappen die de eerste stap volgen, 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 in het algemeen hebben recursieve algoritmen meer geheugen nodig en ze zijn computationeel duur.

Wat is het verschil tussen een gerandomiseerd en een recursief algoritme?

Random algoritmen zijn algoritmen die een willekeurig gevoel 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 subproblemen van hetzelfde probleem. Door de willekeurigheid in de willekeurige algoritmen kan het gedrag van het algoritme zelfs voor dezelfde invoer veranderen (in verschillende executies 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.