Code :
 int tri_fusion_bis(long tab[], int N,int debut){ //deuxieme fonction pour pas avoir une signature moche avec le debut du tableau if(N==1){return 0;} //cas d'arret   int size1,size2; //taille des deux tableau qui seront traité recursivement size1=(N/2); size2=N-size1; // pour prendre en charge les tableau impaire   tri_fusion_bis(tab,size1,debut);//les deux appele recursif tri_fusion_bis(tab,size2,debut+size1);     allocation_tableau(tmp,long, N ); // tableau temporaire resultat int indice1=debut, indice2=debut+size1; //les deux indice pour savoir on t'en est dans l'avancement de tes deux tableau int i; for (i=debut;i<=debut+N;i++){          if((indice1<debut+size1)&&(tab[indice1]<tab[indice2])){         indice1++;         tmp[N+i+1]=tab[indice1];}       else{         if (indice2<debut+size2){             indice2++;              tmp[N+i+1]=tab[indice1];}         else{             indice1++;             tmp[N+i+1]=tab[indice1];}   } //deux indice pour savoir ou on est apres on compare qui est le plus petit, et attention si on est a la fin de pas faire de comparaison en sortant du tableau donc on met celui de l'autre tableau : c'est la raison pour laquel je verifie indice1<debut+size1 et aussi indice2<debut+size2   } for(i=0;i<N;i++){ tab[i]=tmp[i];} return 0; } 
 
  |