Différence Entre L'algorithme Aléatoire Et Récursif

Différence Entre L'algorithme Aléatoire Et Récursif
Différence Entre L'algorithme Aléatoire Et Récursif

Vidéo: Différence Entre L'algorithme Aléatoire Et Récursif

Vidéo: Différence Entre L'algorithme Aléatoire Et Récursif
Vidéo: Algorithmes - partie 5 : arithmétique, algorithmes récursifs 2024, Mai
Anonim

Algorithme aléatoire vs récursif

Les algorithmes aléatoires intègrent un sentiment d'aléatoire dans sa logique en faisant des choix aléatoires lors de l'exécution de l'algorithme. En raison de ce caractère aléatoire, le comportement de l'algorithme peut changer même pour une entrée fixe. Pour de nombreux problèmes, les algorithmes aléatoires fournissent les solutions les plus simples et les plus efficaces. Les algorithmes récursifs sont basés sur l'idée que la solution à un problème peut être trouvée en trouvant des solutions à des sous-problèmes plus petits du même problème. La récursivité est largement utilisée pour trouver des solutions aux problèmes informatiques et de nombreux langages de programmation de haut niveau prennent en charge la récursivité.

Qu'est-ce qu'un algorithme aléatoire?

Les algorithmes aléatoires intègrent un sentiment d'aléatoire en faisant des choix aléatoires qui guident l'exécution de l'algorithme. Cela se fait généralement en prenant un ensemble de nombres aléatoires générés par un générateur de nombres pseudo-aléatoires comme entrée supplémentaire. Pour cette raison, le comportement de l'algorithme peut changer même pour une entrée fixe. Quicksort est un algorithme largement connu qui utilise le concept de caractère aléatoire et dont la durée d'exécution est O (n log n) quelles que soient les propriétés d'entrée. En outre, la méthode de construction incrémentielle aléatoire est utilisée pour la construction de structures telles que la coque convexe dans la géométrie de calcul. Dans cette méthode, les points d'entrée sont permutés aléatoirement puis insérés un par un dans la structure. La mise en œuvre d'un algorithme aléatoire est relativement simple que la mise en œuvre d'un algorithme déterministe pour le même problème. Le plus grand défi dans la conception d'un algorithme aléatoire consiste à effectuer une analyse asymptotique de la complexité temporelle et spatiale.

Qu'est-ce qu'un algorithme récursif?

Les algorithmes récursifs sont basés sur l'idée que la solution à un problème peut être trouvée en trouvant des solutions à des sous-problèmes plus petits du même problème. Dans un algorithme récursif, une fonction est définie en fonction de la version antérieure d'elle-même. Il est important de noter que cet auto-référencement doit avoir une condition de terminaison pour éviter de se référencer à jamais. La condition de terminaison est vérifiée avant de se référencer elle-même. L'étape initiale d'un algorithme récursif est liée à la clause de base de la définition récursive du problème. Les étapes qui suivent l'étape initiale sont liées aux clauses inductives du problème. Les algorithmes récursifs fournissent une solution plus simple dans de nombreuses situations et il est plus proche de la façon naturelle de penser que l'algorithme itératif pour le même problème. Mais en général,les algorithmes récursifs nécessitent plus de mémoire et sont coûteux en calcul.

Quelle est la différence entre un algorithme aléatoire et un algorithme récursif?

Les algorithmes aléatoires sont des algorithmes qui utilisent un sentiment d'aléatoire en faisant des choix aléatoires qui pourraient affecter l'exécution de l'algorithme, tandis que les algorithmes récursifs sont des algorithmes basés sur l'idée qu'une solution à un problème peut être trouvée en trouvant des solutions à des sous-problèmes plus petits. du même problème. En raison du caractère aléatoire des algorithmes aléatoires, le comportement de l'algorithme pourrait changer même pour la même entrée (dans différentes exécutions de l'algorithme). Mais cela n'est pas possible dans les algorithmes récursifs et le comportement d'un algorithme récursif serait le même pour une entrée fixe.

Recommandé: