Les sources et algorithmes C++

Tri rapide récursif

 

La source

int partitionner(int* tableau, int p, int r)
{
    int pivot = tableau[p], i = p-1, j = r+1;
    int temp;
    while(true)
    {
        do j--; while(tableau[j] > pivot);
        do i++; while(tableau[i] < pivot);
        if(i<j)
        {
            temp = tableau[i];
            tableau[i] = tableau[j];
            tableau[j] = temp;
        }
        else return j;
    }
}

void quickSort(int* tableau, int p, int r)
{
    if(p<r)
    {
            int q = partitionner(tableau, p, r);
            quickSort(tableau, p, q);
            quickSort(tableau, q+1, r);
    }
}

 

Explications

Les deux fonctions permettent de trier un tableau d'entiers grâce à l'algorithme du tri rapide (quicksort). Pour plus d'explications sur le fonctionnement de cette algorithme, voici un lien vers un article wikipédia : https://fr.wikipedia.org/wiki/Tri_rapide