Tri par insertion(PASCAL)

neno -  
 Ditravo Noussayer -
Bonjour,
donc voila le problème j'ai un expose sur le tri par insertion et je veux savoir le principe de ce tri et l'explication de langage pascale de ce tri.
MERCI.
Configuration: Windows XP
Firefox 3.0.10

2 réponses

  1. neno
     
    + LOGARITME MERCI
    1
    1. kaiser
       
      je travaille sur le sujet en ce moment, dommage que t'es pas eu de réponse avant; ton exposé doit etre finit, pour ce que ca interresse voici le code avec un tableau de 10 valeurs:

      program tri_par_insertion;
      
      const
           N=10;
      type
          ttab=array[1..N] of integer;
      var
          cnt:integer;
          tab:ttab ;
          temp:integer;
          pos:integer;
      function trouveouinserer(tab1:ttab;ideb,ifin,aval:integer):integer;
               var
                          cnt2:integer;
                          trouve:boolean;
               begin
                    cnt2:=ideb;
                    trouve:=false;
                    repeat
                          if aval<tab1[cnt2] then
      
                                  trouve:=true
      
                             else
      
                                 cnt2:=cnt2+1;
      
      
      
                    until((trouve) or (cnt2>ifin));
               trouveouinserer:=cnt2;
               end;
      
      procedure decale(var tab2:ttab;ideb,ifin:integer);
                var
                      cnt3:integer;
                begin
                     for cnt3:=ifin downto ideb do
                     begin
                          tab2[cnt3+1]:=tab2[cnt3];
                     end ;
                end;
                     
               
      begin
           for cnt:=1 to N do
           begin
                writeln('numero ',cnt);
                read(tab[cnt])
           end;
           for cnt:=2 to N do
               begin
                    temp:=tab[cnt];
                    pos:=trouveouinserer(tab,1,cnt-1,temp);
                    decale(tab,pos,N);
                    tab[pos]:=temp;
               end;
           for cnt:=1 to N do
               begin
                     writeln('numero ',cnt,' =',tab[cnt]);
                     readln;
                end;
      end.
      0
    2. Ditravo Noussayer
       
      procédure tri-insertion (n:entier,var T:tab)

      pour c de 2 à n faire
      si t[c-1]>t[c] alors
      Tmp <-- t[c]
      Proc decaler (t,c-1,p)
      t[p+1]<--Tmp
      fin si
      fin pour
      fin tri-insertion
      procedure decaler (vat t:tab,deb:entier,var fin:entier)

      tanque (fin>=1)et (t[fin]<Tmp) faire
      t[fin+1] <-- t[fin]
      fin <-- fin-1
      fin tant que
      fin decaler

      {VOILA LE L'ALGORITHME DU TRI-INSERTION }
      SI VOUS VOULEZ DE L'AIDE CONTACTER MOI SUR MON E-MAIL

      """"""""""""""""""""""""""" NOUNOU_KOBEJASON85@HOTMAIL.COM """""""""""""""""""""""""""""""""""
      0