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 même problème, mais tous ces algorithmes ne se valent pas. 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 vous propose à présent de passer en revue quelques propriétés importantes des {glo}`algo|algorithmes`. ## Objectifs de la thématique A la fin de ce chapitre, vous saurez ce qui fait d'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 exactement. {fa}`check, text-success mr-1`Savoir déterminer quelle est la meilleure solution pour un problème donné, en fonction de critères objectifs. {fa}`check, text-success mr-1`Appliquer la stratégie algorithmique « diviser pour régner ». {fa}`check, text-success mr-1`Comprendre pourquoi certains problèmes simples n'ont pas de solution exacte. {fa}`check, text-success mr-1`[Optionnel] Créer des fonctions récursives, des fonctions qui s'appellent elles-mêmes.