forked from menault/TD1_DEV51_Qualite_Algo
29 lines
669 B
C
29 lines
669 B
C
#include "quicksort.h"
|
|
|
|
void quicksort(int* tab, int first, int last) {
|
|
int pivot, i, j, tmp;
|
|
if(first < last) {
|
|
pivot = first;
|
|
i = first;
|
|
j = last;
|
|
while (i < j) {
|
|
while(tab[i] <= tab[pivot] && i < last){
|
|
i++;
|
|
}
|
|
while(tab[j] > tab[pivot]){
|
|
j--;
|
|
}
|
|
if(i < j) {
|
|
tmp = tab[i];
|
|
tab[i] = tab[j];
|
|
tab[j] = tmp;
|
|
}
|
|
}
|
|
tmp = tab[pivot];
|
|
tab[pivot] = tab[j];
|
|
tab[j] = tmp;
|
|
quicksort(tab, first, j - 1);
|
|
quicksort(tab, j + 1, last);
|
|
}
|
|
}
|