Algorithmique II ============================== Pour résoudre un problème, il faut commencer par le décomposer en sous-problèmes. Pour chaque sous-problème à résoudre, on décrit les opérations à réaliser sous la forme d’un {glo}`algo|algorithme`. Il existe une multitude d’{glo}`algo|algorithmes` pour résoudre un problème, mais ils ne se valent pas tous. L’**algorithmique** étudie les propriétés de ces {glo}`algo|algorithmes`. Cette analyse est nécessaire pour nous aider à décider quel {glo}`algo|algorithme` utiliser. On se propose à présent de passer en revue quelques propriétés importantes des {glo}`algo|algorithmes`. ```{toctree} :maxdepth: 2 :hidden: :numbered: 1 intro complexite recherche tris heuristiques recursivite conclusion ``` ## Objectifs de la thématique A la fin de ce chapitre, vous saurez ce qui fait qu'un algorithme est un bon algorithme et quels critères prendre en considération pour choisir le meilleur algorithme. Vous verrez également qu'il existe des problèmes relativement simples que l'on n'arrive toujours pas à résoudre. {fa}`check, text-success mr-1`Pouvoir déterminer quelle est la meilleure solution pour un problème donné, en fonction de critères objectifs. {fa}`check, text-success mr-1`Comprendre pourquoi certains problème simples n'ont pas de solution exacte. {fa}`check, text-success mr-1`[Optionnel] Créer des fonctions récursives, qui s'appellent elles-mêmes.