1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#include <time.h>
int partitionner(int *tableau, int p, int r) {
int pivot = tableau[p], i = p-1, j = r+1; int temp;
while (1) {
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) {
int q;
if (p < r) {
q = partitionner(tableau, p, r);
quickSort(tableau, p, q);
quickSort(tableau, q+1, r);
}
}
main(){ int i,n; int tmp,j,c; float temps;
clock_t t1, t2;
tableau =(int*)malloc((n)*sizeof(int));
printf("introduire la taille de tableau =\n\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ printf("tableau[%d]=",i);
scanf("%d",&tableau[i]);
}
t1 = clock();
quickSort(tableau, 1,n) ;
t2 = clock();
temps = (float)(t2-t1)/CLOCKS_PER_SEC;
printf("temps d'execution = %f\n", temps);
printf("\n La complexité d'algorithme de trier rapide est %f",n*log (n));
} |
Partager