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))

































