Bonsoir à tous,
booléen est_trié (tab : tableau de T)
Pour i allant de 1 à longueur(tab) – 1
si tab[i] < tab[i-1]
alors retourner Faux
retourner Vrai
Il y a des choses qui me titillent dans cet algo "bonus" à la fin de la vidéo (quand on s’adresse à des grands débutants j’entends)…
- Plusieurs return: parce que justement il est moins facile de savoir quand l’algo se termine quand il y a plusieurs return disséminés dans la fonction.
- Quand on apprend la boucle "Pour", on explique souvent qu’on l’utilise lorsque l’on sait à l’avance le nombre de fois où le bloc est exécuté. Si on peut quitter à n’importe quel moment avec un return (ou un break, un truc qui n'est pas fondamental aux débutants pour ma part) dans la boucle, cela devient contradictoire.
Ma préférence va ainsi pour l’écriture suivante :
booléen est_trié (tab : tableau de T)
tableau_trié ← Vrai
i ← 1
tant que i < taille(tab) et tableau_trié
tableau_trié ← tab[i] >= tab[i-1]
i ← i + 1
fin tant que
retourner tableau_trié
Si tu veux la preuve de terminaison de ton algo, on sait que le nœud du problème est dans la répétitive "tant que" et il y a un variant évident (fonction de terminaison : f(i) = taille(tab)-i).
Après je donne seulement mon avis... c’est pas moi qui viendrait sur le forum raconter que ce que j’écris est "de la bombe" et défier tout le monde de faire mieux
Partager