Aller au contenu

🧭 Arbre de décision — « Quel algorithme choisir ? »§

Diagramme synthétique reliant un type de problème à la bonne stratégie algorithmique. À garder en tête pour le bac NSI.


Vue d'ensemble§

flowchart TD
    Start([Problème]) --> Q1{Recherche dans une structure ?}
    Q1 -- Non --> Q2{Optimisation ?}
    Q1 -- Oui --> R1{Données triées ?}
    R1 -- Oui --> DICHO[Dichotomie\nO log n]
    R1 -- Non --> R2{Beaucoup de recherches ?}
    R2 -- Oui --> HASH[Dictionnaire / set\nO 1 moyen]
    R2 -- Non --> LIN[Recherche linéaire\nO n]

    Q2 -- Non --> Q3{Tri ?}
    Q2 -- Oui --> O1{Solution exacte requise ?}

    Q3 -- Petit n --> INS[Tri par insertion\nO n²]
    Q3 -- Grand n --> FUSION[Tri fusion ou rapide\nO n log n]

    O1 -- Oui --> O2{Sous-problèmes se chevauchent ?}
    O1 -- Non --> HEUR[Heuristique / glouton]
    O2 -- Oui --> DP[Programmation dynamique\nFibo memoise, sac à dos 0/1]
    O2 -- Non --> O3{Choix glouton optimal ?}
    O3 -- Oui --> GREEDY[Glouton\nrendu monnaie €, sac fractionnaire]
    O3 -- Non --> DC[Diviser pour régner\ntri fusion, dichotomie]

Choix de structure de données§

flowchart TD
    Q[Quelle structure ?] --> A{Ordre LIFO ?}
    A -- Oui --> Pile[PILE\npush/pop O 1]
    A -- Non --> B{Ordre FIFO ?}
    B -- Oui --> File[FILE\nenqueue/dequeue O 1]
    B -- Non --> C{Recherche par clé ?}
    C -- Oui --> Dict[Dictionnaire / table de hachage\nO 1 moyen]
    C -- Non --> D{Données hiérarchiques ?}
    D -- Oui --> Arbre[ARBRE\nABR : O log n si équilibré]
    D -- Non --> E{Relations entre éléments ?}
    E -- Oui --> Graphe[GRAPHE\nliste ou matrice d adjacence]
    E -- Non --> List[LISTE\nindex direct O 1]

Quand chaque parcours ?§

flowchart LR
    Pb{But ?} -- Plus court chemin\nnon pondéré --> BFS[BFS\nfile, O V+E]
    Pb -- Composantes connexes\nDétection cycle --> DFS[DFS\npile/récursion, O V+E]
    Pb -- Arbre binaire\nordre croissant --> INF[Parcours infixe]
    Pb -- Évaluation\nexpressions --> SUF[Parcours suffixe / postfixe]
    Pb -- Copie d'arbre --> PRE[Parcours préfixe]

Cheat-sheet « si je vois… alors »§

Indices dans l'énoncé Algorithme
« plus petit nombre de pièces » avec € Glouton
« plus petit nombre de pièces » avec système quelconque Programmation dynamique
« plus court chemin », graphe non pondéré BFS
« tous les sommets atteignables » DFS
« est-ce qu'il y a un cycle ? » DFS avec marquage
« combien de chemins ? » dans un treillis DP
« rechercher dans un texte » Naïf / KMP
« trier n grandes valeurs » Tri fusion ou rapide
« trouver l'élément le plus proche » KNN
« tous les éléments d'un arbre dans l'ordre » Parcours infixe
« hiérarchie » Arbre
« liens entre entités » Graphe