q Étape 2 : t[2] et t[6] sont comparés et éventuellement permutés. 
q Étape 3 : t[3] et t[7] sont comparés et éventuellement permutés. 
q Étape 4 : t[4] et t[8] sont comparés et éventuellement permutés. 
q Étape 5 : t[5] et t[9] sont comparés et éventuellement permutés. 
… 
Le pas ne doit pas être calculé au hasard car c’est de lui que dépend l’efficacité de l’algorithme. La formule utilisée par 
l’algorithme est généralement : 
U (n+1) =3 Un +1 avec U 0 =0
 
PROGRAMME TRISHELL 
VAR 
cpt,n,i,j,tmp:entiers 
t:tableau[1..10] d’entiers 
DEBUT 
cpt←10 
n←0 
TantQue n n←3*n+1 
FinTantQue 
 
TanQue n<>0 Faire 
n←n/3 
Pour i de n à cpt-1 Faire 
tmp←t[i] 
j←i
 
TantQue j>n-1 ET t[j-n]>tmp 
t[j] ←t[j-n] 
j←j-n 
FinTantQue 
t[j] ←tmp 
FinPour 
FinTantQue 
FIN
Soit en Java : 
class chap5_trishell { 
public static void main(String[] args) { 
int t[]={48,17,25,9,34,12,28,1,4,98,0,33,48,10,11,9,25}; 
int i,j,n=0,mem,pos,cpt; 
 
cpt=t.length; 
 
7 
4 
6 
9 
8 
1 
3 
2 
0 
5 
7 
1 
6 
9 
8 
4 
3 
2 
0 
5 
7 
1 
3 
9 
8 
4 
6 
2 
0 
5 
7 
1 
3 
2 
8 
4 
6 
9 
0 
5 
7 
1 
3 
2 
0 
4 
6 
9 
8 
5 
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
114
Précédent

- 114/220

Suivant