Quick sort ou tris rapide

Portrait de trax

Une des nombreuses implémentations du quick sort (tris rapide).

#include <stdio.h>
void quick(int *, int p, int r);
void quick(int *tab,int debut, int fin){
	int pivot = debut;
	int g = debut;
	int d = fin;
	int tmp;
	do {
		if (tab[g] >= tab[d]){
			tmp = tab[g];
			tab[g] = tab[d];
			tab[d] = tmp;
			pivot = g + d - pivot;
		}
		if (pivot == g){
			d--;
		}else{
			g++;
		}
	}while(g<d);
	if (debut < (g-1)){
		quick(tab, debut, (g-1));
	}
	if (fin > (d + 1)){
		quick(tab, (d+1), fin);
	}
}