Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1182 connectés 

  FORUM HardWare.fr
  Programmation
  C

  tri fusion en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tri fusion en C

n°1816814
crops
Posté le 26-11-2008 à 01:22:32  profilanswer
 

bonsoir a toute et tous j'ai un bout de code et dans l'avant derniére boucle for j'ai un tableau tmp dont je ne sais pas quel indice de case je doit lui affécter quelqu'un peut-il m'aider;
j'ai tester pas mal d'indice mais sa ne marche pas voila le code

  
Code :
  1. int tri_fusion_bis(long tab[], int N,int debut){ //deuxieme fonction pour pas avoir une signature moche avec le debut du tableau
  2. if(N==1){return 0;} //cas d'arret
  3.  
  4. int size1,size2; //taille des deux tableau qui seront traité recursivement
  5. size1=(N/2);
  6. size2=N-size1; // pour prendre en charge les tableau impaire
  7.  
  8. tri_fusion_bis(tab,size1,debut);//les deux appele recursif
  9. tri_fusion_bis(tab,size2,debut+size1);
  10.  
  11.  
  12. allocation_tableau(tmp,long, N ); // tableau temporaire resultat
  13. int indice1=debut, indice2=debut+size1; //les deux indice pour savoir on t'en est dans l'avancement de tes deux tableau
  14. int i;
  15. for (i=debut;i<=debut+N;i++){
  16.     
  17.     if((indice1<debut+size1)&&(tab[indice1]<tab[indice2])){
  18.         indice1++;
  19.         tmp[N+i+1]=tab[indice1];}
  20.  
  21.     else{
  22.         if (indice2<debut+size2){
  23.             indice2++;
  24.             tmp[N+i+1]=tab[indice1];}
  25.         else{
  26.             indice1++;
  27.             tmp[N+i+1]=tab[indice1];}
  28.  
  29. }
  30. //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
  31.  
  32. }
  33. for(i=0;i<N;i++){
  34. tab[i]=tmp[i];}
  35. return 0;
  36. }
 

Édité par Elmoricq : ajout des balises code.

Message cité 1 fois
Message édité par Elmoricq le 26-11-2008 à 02:41:51
mood
Publicité
Posté le 26-11-2008 à 01:22:32  profilanswer
 

n°1816859
Trap D
Posté le 26-11-2008 à 10:16:02  profilanswer
 

Ç'aurait été bien de couper la dernière ligne de commentaire.

n°1816891
sircam
I Like Trains
Posté le 26-11-2008 à 11:07:19  profilanswer
 

crops a écrit :

Édité par Elmoricq : ajout des balises code.


Tu aurais tout de même pu corriger les indents ainsi que les nombreuses fautes de d'orthographe, de grammaire et de ponctuation :o
 
Voire même répondre à la question :o
 
C'est du boulot fait à moitié. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1816894
Elmoricq
Modérateur
Posté le 26-11-2008 à 11:16:59  profilanswer
 

Vu l'heure à laquelle je faisais ça, par pur désoeuvrement le temps qu'un traitement se finisse (ouais, je bosse aussi la nuit), j'ai pas cherché très loin. En fait j'ai même pas regardé le code. [:joce]

n°1816895
Elmoricq
Modérateur
Posté le 26-11-2008 à 11:18:36  profilanswer
 

Hmm, je viens de regarder le code, et le peu de neurones encore en vie viennent de demander pitié. C'est quoi un "tri fusion" ?

n°1816902
sircam
I Like Trains
Posté le 26-11-2008 à 11:35:31  profilanswer
 

http://fr.wikipedia.org/wiki/Tri_fusion
 

Citation :

Le tri repose sur le fait que pour fusionner deux listes/tableaux trié(e)s dont la somme des longueurs est n, n-1 comparaisons au maximum sont nécessaires.


 
Y'a un joli tableau sur la page wikipedia


Message édité par sircam le 26-11-2008 à 11:35:40

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1816908
Elmoricq
Modérateur
Posté le 26-11-2008 à 11:41:32  profilanswer
 

Ah c'est un vrai algo de tri, je ne le connaissais pas.
 
En plus y a même le code C qui va avec. Du coup crops peut aller le zieuter et s'en inspirer pour voir ce qui ne colle pas dans son programme.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  tri fusion en C

 

Sujets relatifs
Listing des différences avec le C++[C] Problème de lecture dans un fichier en C : fscanf
[C] Bataille navale, sauvegarde/restauration.[C] Comment faire un getchar() sans pause après
[débutant][questionalacon] scanf et chaîne de caractères[C] Opérations avec des matrices
[Résolu] Problème pour lire et écrire des fichiers pgm en C++[ C ] Bonjour, aide pour traduire en C .
Génération d'une fréquence précise via carte son en C[C] Utilisation d'une DLL
Plus de sujets relatifs à : tri fusion en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR