Zoofast.fr rend la recherche de réponses rapide et facile. Notre communauté fournit des réponses précises et rapides pour vous aider à comprendre et à résoudre n'importe quel problème.

Bonsoir c'est un devoir en SNT

Créer un algorithme pyton permettant d'ordonner une liste dans l'ordre croissant
Puis une permuttation des valeurs
MERCI

Sagot :

Bonjour,

1)

Il existe plusieurs solutions pour trier une liste. Je vais vous en présenter 3.

Méthode 1: Tri avec la méthode sort()

C'est la méthode la plus simple en Python, puisque l'algorithme est déjà fait. C'est l'un des gros avantages des programmes de haut niveau tel que le Python.

C'est aussi la méthode non appréciée pour des cours d'algorithmie.

liste = [...] #La liste à trier.

liste.sort()

#Voilà elle est triée par ordre croissant, c'était très difficile :').

Bref passons, à quelque chose de plus sérieux qui va être plus appréciée par les professeurs.

Méthode 2: Tri par insertion

L'objectif est de comparer les deux premiers éléments pour savoir qui est le plus grand et les échanger si l'ordre n'est pas bon. On répète ce processus en comparant à chaque fois deux éléments jusqu'à la fin de la liste (voir schéma ci-joint avec l'algorithme associé ainsi que sa complexité, il s'agit de l'une de mes fiches).

Méthode 3: Tri par sélection

On recherche l'élément le plus petit dans la liste et on le place au tout début. On répète l'opération sur la liste après le 1er élément jusqu'à la fin de la liste.

Voir ci-joint. La fonction minimum() que j'ai sur ma fiche existe déjà en Python aussi (min()) mais il faut être capable de l'implémenter, c'est une fonction classique.

Il existe d'autres méthodes de tri d'une liste telles que le tri fusion, le tri rapide ou encore le tri à bulle. La complexité de ces algorithmes est plutôt bonne, en tout cas elle est bien meilleur que les deux autres tris. Cependant, il faut comprendre la notion de "Diviser pour mieux régner" et surtout la notion de "récursivité" qui n'est pas au programme de lycée me semble t-il et qui n'est pas forcément facile si tu commences l'algorithmie.

2)

Créons une fonction qui permet de permuter deux éléments dans la liste (même si c'est quelque chose qu'on a déjà utilisé dans la question précédente, l'ordre des questions est un peu surprenant).

Je vais te présenter deux méthodes, une qui fonctionne avec tous les langages de programmation et une qui fonctionne avec Python mais pas avec la plupart des autres langages.

Méthode 1: Méthode Python

def permutation(liste, position1, position2):

   """Fonction qui permet de permuter l'élément en position1 de la liste avec l'élément en position2."""

   liste[position1], liste[position2] = liste[position2], liste[position1]

Méthode 2: Fonctionne toujours

def permutation(liste, position1, position2):

   temporaire = liste[position1] #On garde la valeur à déplacer dans une variable.

   liste[position1] = liste[position2] #On écrase la valeur en position1 pour y mettre la valeur qu'il y a en position2.

   liste[position2] = temporaire

Ici, on crée donc une variable qui va juste garder une valeur en sauvegarde le temps de faire notre trafic.

Bonne journée.

View image Thomas756
View image Thomas756