Le pseudo-tri dictatorial d’une série d’entiers consiste à supprimer de la liste les entiers non triés.
Principe
Ce tri suit le principe suivant :
s’il n’y a aucun ou un seul élément, la série est considérée comme triée;
sinon :
on conserve le premier élément de la série ;
pour chaque élément de la série à partir du deuxième :
si l’élément est plus petit que le dernier élément conservé alors on l’élimine ;
sinon on le conserve.
Exemple
Si on considère la série \(2\), \(3\), \(1\), \(8\) :
on conserve le \(2\) qui est le premier élément ;
le \(3\) n’est pas plus petit que le dernier conservé (qui est \(2\)) donc on le conserve ;
le \(1\) est plus petit que le dernier conservé (qui est \(3\)) donc on l’élimine ;
le \(8\) n’est pas plus petit que le dernier conservé (qui est toujours \(3\)) donc on le conserve.
La série triée obtenue après cet algorithme est donc \(2\), \(3\), \(8\).
On souhaite coder une fonction tri_dictatorial qui prend en paramètre une liste d’entiers de type list et qui renvoie une nouvelle liste d’entiers triée, éventuellement vide, ne contenant que les éléments de la serie à conserver.
Pas de modification
La fonction ne doit pas modifier la série passée en paramètre.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)