Tri à bulle
Résolu
b_khallou
Messages postés
335
Date d'inscription
Statut
Membre
Dernière intervention
-
b_khallou Messages postés 335 Date d'inscription Statut Membre Dernière intervention -
b_khallou Messages postés 335 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche un algorithme de tri à bulles mais version recursive
je cherche un algorithme de tri à bulles mais version recursive
A voir également:
- Tri bulle c
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Video bulle whatsapp - Accueil - Messagerie instantanée
- Whatsapp couleur bulle - Accueil - Messagerie instantanée
- Info bulle excel ✓ - Forum Excel
5 réponses
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++;
}
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++;
}
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
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
<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;
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;
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;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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;
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;