void sortliste1(int unsigned *liste){
//tri à bulles
int i, j, a;
for (i=0;i<L-1;i++){
for (j=i+1;j<L;j++){
if (liste[i]>liste[j]){
a=liste[j];
liste[j]=liste[i];
liste[i]=a;
}
}
}
}
void sortliste2(int unsigned *l1){
//tri fusion
int i, j, k, l, m, n, o=1;
int unsigned l2[L];
int unsigned *l3;
int unsigned *l4;
l3=l1;
l4=l2;
printf("Debut du tri...\n");
for (i=0;i<L;i++){
l2[i]=0;
}
for (i=2;i<L;i*=2){
//la taille des parties à trier
for (j=0;j<L;j+=i){
//on parcourt les premiers éléments de nouvelle chaque parties.
l=0;
m=0;
n=(i+j>L)?L-i:i;
for (k=0;k<n;k++){
if (m==o){
l4[j+k]=l3[j+l+o];
l++;
}else if ( l==o ){
l4[j+k]=l3[j+m];
m++;
}else if (l3[j+m]<l3[j+l+o]){
l4[j+k]=l3[j+m];
m++;
}else{
l4[j+k]=l3[j+l+o];
l++;
}
}
}
if (l3==l2){
l3=l1;
l4=l2;
}else{
l3=l2;
l4=l1;
}
o=i;
}
l=0;
m=0;
for (k=0;k<L;k++){
if (m==o){
l4[k]=l3[l+o];
l++;
}else if ( l==o ){
l4[k]=l3[m];
m++;
}else if (l3[m]<l3[l+o]){
l4[k]=l3[m];
m++;
}else{
l4[k]=l3[l+o];
l++;
}
}
if (l4==l2){
for (k=0;k<L;k++){
l1[k]=l4[k];
}
}
}
void sortliste4(int unsigned *l1){
//Cet algo de tri est l'algo de tri par insersion.
int i, j, k, l;
for (i=1;i<L;i++){
l=l1[i];
for (j=0;j<i;j++){
if (l1[i]<l1[j]){
for (k=i-1;k>j;k--){
l1[k+1]=l1[k];
}
l1[j]=l;
break;
}
}
}
}