web-dev-qa-db-fra.com

Un exemple d'algorithme de niveau débutant, d'algorithme de niveau intermédiaire et d'un algorithme de niveau complexe / expert?

J'aimerais avoir un sens pour la gamme de complexité que les algorithmes tombent dans. Je pense que ce serait intéressant et utile pour ceux qui, comme moi, essayant de mieux comprendre comment les algorithmes sont formulés et comment les déconstruire.

Pouvez-vous offrir un algorithme de base avec une explication, un algorithme intermédiaire avec une explication, et peut-être un niveau d'expert (avec ou sans) une explication?

7
zkidd

De la Matrice de compétence de programmation :

débutant
Basic tri , recherche et structure de données traverse et algorithmes de récupération

intermédiaire
Arbre et graphique Structures de données, simple gourmand et diviser et conquérir algorithmes.

Avancé
algorithmes graphiques , algorithmes de calcul numériques , etc.

18
Robert Harvey

Quelques exemples

Débutant: inversion de la liste liée , Mergesort , Sieve d'Eratosthène , algorithmes d'arbre rouge-noir (insertion et le retrait)

Intermédiaire: Simplex , test de Miller-Rabin primalité , Huffman , algorithme de Kruskal

Avancé: algorithme de Viterbi , Cooley-Tukey FFT , Recuit Simulé , inférence de type Hindley-Milner

J'ai essayé de trouver des liens qui avaient au moins une pseudo-code et/ou bonne explication. Mais la chose au sujet des algorithmes avancés est qu'ils ont beaucoup de variations. Ainsi, vous pouvez expliquer les grandes lignes d'un " algorithme génétique ", mais il y a effectivement de nombreux algorithmes qui passe ce nom. (Même chose pour la FFT, je lié une variante du nom de celui-ci)

Ce texte sur l'intégration numérique , pour un public de jeu, décrit deux algorithmes d'intégration numérique: un algorithme plus simple, simple (l'intégrateur Euler), et un plus avancé (l'ordre Runge-Kutta 4 intégrateur) . Il peut être un bon pour voir " de base par rapport à avancé ". Vous pouvez utiliser les intégrateurs pour simuler la physique et l'intégrateur Euler conduit à des erreurs énormes, donc il recommande plutôt RK4. Mais ils sont sans doute des variations de l'algorithme " même ": Euler est de premier ordre RK.

5
elias