Files
cours/high-school/fonctions_tri/partitionement.py
2025-09-26 11:16:23 +02:00

29 lines
692 B
Python

from typing import Any
def partitionement(liste: list[Any], debut, fin):
pivot = liste[debut]
gauche = debut + 1
droite = fin - 1
while gauche <= droite:
while (gauche <= droite) and (liste[gauche] <= pivot):
gauche += 1
while (gauche <= droite) and (liste[droite] > pivot):
droite -= 1
if gauche < droite:
exchange(liste, gauche, droite)
gauche += 1
droite -= 1
exchange(liste, droite, debut)
return droite
def exchange(liste, indx_g, indx_d):
liste[indx_g], liste[indx_d] = liste[indx_d], liste[indx_g]
l = [12, 4, 0, 44, 27]
print(partitionement(l, 0, len(l) - 1))