#include "quicksort.h" // Fonction utilitaire : échanger deux entiers static void swap(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } // Partition : divise le tableau autour du pivot static int partition(int* A, int lo, int hi) { int pivot = A[hi]; // pivot = dernier élément int i = lo; for(int j = lo; j < hi; j++) { if(A[j] <= pivot) { swap(&A[i], &A[j]); i++; } } swap(&A[i], &A[hi]); // placer le pivot à la bonne position return i; // index final du pivot } // Quicksort récursif void quicksort(int* A, int lo, int hi) { if(lo >= hi || lo < 0) // vérification des bornes return; int p = partition(A, lo, hi); quicksort(A, lo, p - 1); // tri gauche quicksort(A, p + 1, hi); // tri droite }