le premier pas dans l'exemple du tri shell dans le livre bac info
pour n = 15 , le premier pas doit etre egale à 13 .
je vous demande bien de refaire L'exemple du livre et j'attend vos réponses.

voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
procedure trishell (var t:tab; n:integer ) ;
 var    p,i,j,v: integer;
 begin    
     p:=0;
     while p<= n do    
     p:= 3*p+1;
     while p <> 0 do
      begin
          p:=p div 3;
          for i:= p to n do
           begin
                v:=t[i];
                j:=i;
                while (j > p-1) and (t[j-p] > v ) do
                 begin
                      t[j]:=t[j-p];
                      j:=j-p;
                 end;
                t[j]:=v;
           end;
      end;
 end;