Maison >interface Web >js tutoriel >Structures de données et algorithmes | Algorithmes | DSA
En informatique, les algorithmes sont souvent classés en fonction de leur fonction et de la structure de leurs données. Voici une répartition des types d’algorithmes de base selon leurs fonctions principales :
Ces algorithmes aident à localiser un élément spécifique dans une structure de données, comme un tableau ou une liste.
Recherche linéaire : vérifie chaque élément séquentiellement jusqu'à ce que la cible soit trouvée.
Recherche binaire : recherche efficacement un tableau trié en divisant à plusieurs reprises l'intervalle de recherche en deux.
Recherche sautée : avance dans un tableau trié, puis effectue une recherche linéaire dans le segment.
Recherche par interpolation : utilisée sur des tableaux triés uniformément distribués ; estime la position de la clé de recherche.
Ces algorithmes réorganisent les éléments dans un ordre spécifique, généralement ascendant ou décroissant.
Tri à bulles : échange à plusieurs reprises les éléments adjacents s'ils sont dans le mauvais ordre.
Tri par sélection : recherche le plus petit élément et le déplace vers la partie triée de la liste.
Tri par insertion : crée une liste triée en insérant chaque élément à sa place appropriée.
Tri par fusion : utilise une approche diviser pour régner pour diviser, trier et fusionner des listes.
Tri rapide : divise la liste à l'aide d'un pivot et trie les sous-tableaux de manière récursive.
Les algorithmes d'arbre sont utilisés pour naviguer, manipuler ou rechercher dans des structures de données arborescentes.
Traversée d'arbre binaire : techniques telles que la traversée dans l'ordre, la pré-commande et la post-commande pour visiter les nœuds dans des séquences spécifiques.
Arbre de recherche binaire (BST) : un arbre binaire où chaque nœud a un enfant gauche (plus petit) et droit (plus grand).
AVL Tree : un arbre de recherche binaire auto-équilibré.
Arbre Rouge-Noir : Un BST équilibré qui suit des règles de couleur spécifiques pour l'équilibrage.
Arbre de segments : utilisé pour les requêtes de plage et les mises à jour.
Ces algorithmes fonctionnent sur des graphiques constitués de nœuds (sommets) et d'arêtes.
Recherche en profondeur (DFS) : explore autant que possible le long de chaque branche avant de revenir en arrière.
Breadth-First Search (BFS) : explore tous les voisins avant de passer au niveau suivant.
Algorithme de Dijkstra : trouve le chemin le plus court entre les nœuds dans un graphe pondéré.
Algorithme Bellman-Ford : recherche les chemins les plus courts mais fonctionne même avec des graphiques avec des poids négatifs.
Algorithme Floyd-Warshall : calcule les chemins les plus courts entre toutes les paires de nœuds.
La programmation dynamique (DP) est utilisée pour résoudre des problèmes complexes en les décomposant en sous-problèmes qui se chevauchent.
Séquence de Fibonacci : calcule le nième nombre de Fibonacci en utilisant une approche ascendante.
Problème de sac à dos : résout les problèmes d'optimisation de l'allocation des ressources.
Sous-séquence commune la plus longue (LCS) : recherche la séquence commune la plus longue à deux chaînes.
Multiplication de chaîne matricielle : détermine la manière optimale de multiplier les matrices.
Les algorithmes gloutons font le meilleur choix local à chaque étape pour trouver un optimal global.
Algorithme de Prim : recherche l'arbre couvrant minimum pour un graphique.
Algorithme de Kruskal : recherche également l'arbre couvrant minimum en ajoutant les arêtes les moins coûteuses.
Codage Huffman : compresse les données en créant un arbre binaire avec les codes les plus courts pour les symboles les plus courants.
Sélection d'activité : sélectionne le nombre maximum d'activités qui ne se chevauchent pas dans le temps.
Ces algorithmes essaient des solutions progressivement et reviennent en arrière lorsqu'ils atteignent une impasse.
Problème N-Queens : Place N reines sur un tableau N×N sans conflits.
Sudoku Solver : utilise une approche de retour en arrière pour remplir la grille du puzzle.
Maze Solver : trouve un chemin dans un labyrinthe en explorant chaque possibilité.
Les algorithmes Diviser pour régner résolvent les problèmes en les décomposant en sous-problèmes plus petits.
Tri par fusion : divise la liste en deux, trie chaque moitié et les fusionne.
Tri rapide : divise la liste autour d'un pivot.
Recherche binaire : divise l'intervalle de recherche pour trouver la cible en temps logarithmique.
Chacune de ces catégories propose différentes approches pour gérer différents types de problèmes informatiques, ce qui facilite le choix du bon algorithme pour une tâche spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!