def algo(liste): longueur = len(liste) if longueur <= 1: # condition de sortie de la récursion return liste else: pivot = liste.pop() # pop() retourne le dernier élément et le supprime grands = [] # on crée une liste vide petits = [] # on crée une liste vide for element in liste: if element > pivot: grands.append(element) # on ajoute l'élément plus grand else: petits.append(element) # on ajoute l'élément plus petit return algo(petits) + [pivot] + algo(grands) # récursion double print(algo([2, 3, 1]))