| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 
 |  
bool MaClasse::QuickSort(int __fastcall Gauche, int __fastcall Droite)
{
  bool Fini = false;
 
  if(Droite > Gauche)
  {
    r = Droite;
    l = Gauche;
    q = l;
    p = r;
    AnsiString v = *((AnsiString *)Tableau->Items[r]);
    //AnsiString est un type qui permet de manipuler des chaines de caractères
    while(p > q)
    {
      while( (CompareText(*((AnsiString *)Tableau->Items[p]), v) >= 0) && (p > l) ) 
      //CompareText est une fonction de borland
      {
        p--;
      }
      while( (CompareText(*((AnsiString *)Tableau->Items[q]), v) <= 0) && (q < r) )
      {
        q++;
      }
 
      if(p > q)
      {
        Liste_Lignes->Exchange(p, q);
        //échange la position des pointeurs
      }
    }
    Tableau->Exchange(q, r);
    //échange la position des pointeurs
  }
  else
  {
    Fini = true;
  }
  return Fini;
} | 
Partager