| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 |  
 void mvect_qsort( mvect *V , int g, int d, int (*F)(const void*, const void*) )
 { void *  tmp ;
   void * tp ;
   int lo = g ;
   int hi = d ;
   int p = ( lo + hi ) / 2 ;
   tmp = V->g_data[p]   ;
 
   do
   { while( F( V->g_data[lo], tmp ) < 0 ) lo++;
     while( F( V->g_data[hi], tmp ) > 0 ) hi--;
 
     if( lo <= hi )
     { tp = V->g_data[lo]  ;
       V->g_data[lo] = V->g_data[hi] ;
       V->g_data[hi] = tp  ;
       lo++;
       hi--;
     }
    } while( lo <= hi ) ;
   if( hi > g ) mvect_qsort( V,g, hi, F);
   if( lo < d ) mvect_qsort(V ,lo,d, F ) ;
 } | 
Partager