Skip to content
Snippets Groups Projects
Commit cfab610e authored by SCHMIDT LUCAS's avatar SCHMIDT LUCAS
Browse files

Ajout du tri rapide

parent 15fd8827
Branches
No related merge requests found
#include <stdio.h>
#include <stdlib.h>
void permuter(long* a,long* b){
long tmp = *a;
*a = *b;
*b = tmp;
}
size_t partition(long* A,size_t p,size_t r){
long pivot = A[r-1];
size_t i = p;
for(size_t j = p;j < r-1;j++){
if(A[j] <= pivot){
permuter(A+i,A+j);
i++;
}
}
permuter(A+i,A+r-1);
return i;
}
void sousTriRapide(long* A,size_t p,size_t r){
if(p+1 < r){
size_t q = partition(A,p,r);
sousTriRapide(A,p,q);
sousTriRapide(A,q+1,r);
}
}
void triRapide(long* A,size_t n){
sousTriRapide(A,0,n);
}
void printTab(long* A,size_t n){
printf("{");
for(size_t i = 0;i < n;i++){
if(i != 0){
printf(",");
}
printf("%ld",A[i]);
}
printf("}\n");
}
int main(int argc,char** argv){
long* A = malloc((argc-1)*sizeof(long));
for(size_t i = 0;i < argc-1;i++){
A[i] = atol(argv[i+1]);
}
printf("Tableau d'entrée: ");
printTab(A,argc-1);
triRapide(A,argc-1);
printf("Tableau de sortie: ");
printTab(A,argc-1);
free(A);
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment