TP d'introduction: le crêpier psycho-rigide⚓︎
Énoncé
À la fin de sa journée, un crêpier dispose d'une pile désordonnée de crêpes. Le crêpier étant un peu psycho-rigide, il décide de ranger sa pile de crêpes, de la plus grande (en bas) à la plus petite (en haut).
Pour cette tâche, le crêpier peut faire une seule action : glisser sa spatule entre deux crêpes et retourner le haut de la pile.
Comment doit-il procéder pour trier toute la pile de crêpes?
Rappels (?) de méthodes utiles (?) sur les listes de Python
- la méthode
appendpermet un élément d'ajouter en fin de liste :>>> lst = [1, 4, 7] >>> lst.append(10) >>> lst.append(13) >>> lst [1, 4, 7, 10, 13] - la méthode
poppermet d'enlever et de renvoyer un élément d'une liste (par défaut le dernier):>>> lst.pop() 13 >>> lst.pop() 10 >>> lst [1, 4, 7] >>> lst.pop(0) 1 >>> lst [4, 7]
Indications
-
Écrire une fonction
plus_grand(lst, k)qui renvoie l'indice du plus grand élément de la listelstaprès la positionk.Exemple:
>>> pile = [149, 117, 131, 142, 125] >>> plus_grand(pile, 0) 0 >>> plus_grand(pile, 1) 3 -
Écrire une fonction
retourner(lst, k)qui renvoie la liste retournée à partir de l'indice k.Exemple:
>>> pile = [149, 117, 131, 142, 125] >>> retourner(pile, 3) [149, 117, 131, 125, 142] -
Écrire une fonction récursive
ordonner(lst, k)qui ordonne la listelstà partir de l'indicek.


