Zaibon

Untitled

May 8th, 2011
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.30 KB | None | 0 0
  1. void index_sort(Index *pIndex)
  2. {
  3.     short i=0,j=0;
  4.     char pivot_nom[NOM], pivot_prenom[PRENOM];
  5.     char compar1[NOM+PRENOM], compar2[NOM+PRENOM];
  6.     long pivot_offset;
  7.     long pivot_registre;
  8.  
  9.     while(i< OUVRIER_MAX)
  10.     {
  11.         /*on ne trie que les lignes occupée*/
  12.         if( (pIndex+i)->NumRegistre != -1)
  13.         {
  14.             /*tri*/
  15.             strcpy(pivot_nom,(pIndex+i)->nom);
  16.             strcpy(pivot_prenom,(pIndex+i)->prenom);
  17.             pivot_registre = (pIndex+i)->NumRegistre;
  18.             pivot_offset = (pIndex+i)->offsetOuvrier;
  19.             j = i;
  20.  
  21.             if(j>0)/*on tri que si il y a plus de 1 entree*/
  22.             {
  23.                 /*concaténation des nom et prenom pour le tri*/
  24.                 strcpy(compar1,(pIndex+i)->nom);
  25.                 strcat(compar1,(pIndex+i)->prenom);
  26.  
  27.                 strcpy(compar2,(pIndex+j-1)->nom);
  28.                 strcat(compar2,(pIndex+j-1)->prenom);
  29.  
  30.                 while(j > 0 && strcmp(compar2,compar1) == 1)
  31.                 {
  32.                     strcpy( (pIndex+j)->nom,(pIndex+j-1)->nom);
  33.                     strcpy( (pIndex+j)->prenom,(pIndex+j-1)->prenom);
  34.                     (pIndex+j)->offsetOuvrier = (pIndex+j-1)->offsetOuvrier;
  35.                     (pIndex+j)->NumRegistre = (pIndex+j-1)->NumRegistre;
  36.  
  37.                     j--;
  38.                     strcpy(compar2,(pIndex+j-1)->nom);
  39.                     strcat(compar2,(pIndex+j-1)->prenom);
  40.                 }
  41.                 strcpy( (pIndex+j)->nom, pivot_nom);
  42.                 strcpy( (pIndex+j)->prenom, pivot_prenom);
  43.                 (pIndex+j)->offsetOuvrier = pivot_offset;
  44.                 (pIndex+j)->NumRegistre = pivot_registre;
  45.             }
  46.         }
  47.         i++;
  48.     }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment