Tri à bulle

Résolu
b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -  
b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je cherche un algorithme de tri à bulles mais version recursive
Configuration: Windows XP
Firefox 2.0.0.12

5 réponses

  1. couc Messages postés 13 Statut Membre 1
     
    en c++ tu peux faire comme ca :
    int i, j, k ;
    i=0 ;
    while (i<n)
    {
    for (j=n; j>=i+1; j--)
    if (T[j]<T[j-1];
    {
    l=T[j-1];
    T[j-1]=T[j];
    T[j]=l;
    }
    }
    i++;
    }
    1
  2. b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   34
     
    est ce que c'est une methode recursive ? et je cherche un algorithme sous cette forme ( pas langage C ou Java); cette procedure est iterative ,alors comment je peut le rendre recursive . et je vous remerci.
    PRODECURE Tri_bulle (Tableau a[1:n])

    VARIABLE permut : Booleen;

    REPETER
    permut = FAUX
    POUR i VARIANT DE 1 à N-1 FAIRE
    SI a[i] > a[i+1] ALORS
    echanger a[i] et a[i+1]
    permut = VRAI
    FIN SI
    FIN POUR
    TANT QUE permut = VRAI

    FIN PROCEDURE
    0
  3. b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   34
     
    <code>je m'excuse il ya une faute ds la derniere version voila une autre version plus meilleur
    procedure Tribull(var Tab:Tableau;n:integer) ;
    var j, t, temp : integer;
    begin 
      if n >=1 then
      begin
      for j := 2 to n do 
       if Tab[ j-1 ] > Tab[ j ] then
         begin
          temp := Tab[j-1]; 
          Tab[j-1] := Tab[j]; 
          Tab[j] := temp;
          end;
       tribull(tab,n-1);
      end; 
    end;
    0
  4. b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   34
     
    voila jé trouvé la solution
    Procedure Tri_bulles (var t : TAB; n : integer);
    Var i, aux : integer;
    Function Trier (t : TAB; n : integer) : Boolean;
    Var ok : boolean; i : integer;
    Begin
    ok := true; i := 1;
    Repeat
    If t[i + 1] < t[i] Then ok := false
    Else i := i + 1;
    Until ((Not ok) or (i >= n));
    Trier := ok;
    End;
    Begin
    If Not Trier (t, n) Then
    Begin
    For i := 1 To n - 1 Do
    If t[i] > t[i + 1] Then
    Begin
    aux := t[i];
    t[i] := t[i + 1];
    t[i + 1] := aux;
    End;
    Tri_bulles (t, n);
    End;
    End;
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. b_khallou Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   34
     
    Procedure Tri_bulles (var t : TAB; n : integer);
    Var i, aux : integer;
    Function Trier (t : TAB; n : integer) : Boolean;
    Var ok : boolean; i : integer;
    Begin
    ok := true; i := 1;
    Repeat
    If t[i + 1] < t[i] Then ok := false
    Else i := i + 1;
    Until ((Not ok) or (i >= n));
    Trier := ok;
    End;
    Begin
    If Not Trier (t, n) Then
    Begin
    For i := 1 To n - 1 Do
    If t[i] > t[i + 1] Then
    Begin
    aux := t[i];
    t[i] := t[i + 1];
    t[i + 1] := aux;
    End;
    Tri_bulles (t, n);
    End;
    End;
    -1