hg Register Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet

Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index

hg Revision tunisie scolaire Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Search Search Memberlist Memberlist Usergroups Usergroups Profile Profile Log in to check your private messages Private Messages Log in Log in


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum révision tunisie , vous devez
 inscrire sur notre forum a partir d'ici
   NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
 
forum d'aide informatique : internet, réseau, programmation informatique ...
Tri Rapide
 
 
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Algorithmique & programmation -> Algorithmes avancés
hg Previous topic :: Next topic   hd
Author Message
eyos_A


Offline

Joined: 26 Feb 2010
Posts: 2
Point(s): 2
Moyenne de points: 0

Posted: Thu 1 Apr - 22:54 (2010)    Post subject: Tri Rapide Reply with quote

program quicksort;
uses wincrt ;
const MAX_VAL = 200;
 
type tab_entier = array [1..MAX_VAL] of integer;
    var
    n:integer;
    t:tab_entier;


              Procedure Remplir(var n:integer;var t:tab_entier);
              var
              i:integer;
              begin
              repeat
              writeln('donner la taille du tableau');
              read(n)
              until (n>0) and (n<= MAX_VAL) ;
              for i:=1 to n do
              t[i]:= random(1001);
              end;


              procedure affichage(n:integer;t:tab_entier);
              var
              i:integer;
              begin
              for i:=1 to n do
              write(t[i]:5);
              writeln;
              end;
procedure tri_rapide(deb, fin : integer ; var t : tab_entier);
var                       
    i, p : integer;
    mid, aux : integer;
begin
    (* si fin > deb alors le tableau nécessite d'être trié*)
    if (fin > deb) then begin
        (* choisir le milieu du tableau comme pivot *)
        mid := (deb + fin) div 2; 
 
        (* 
            mettre l'élément pivot au début afin de pouvoir parcourir 
            le tableau en continu.
        *)
        aux := t[mid]; 
        t[mid] := t[deb]; 
        t[deb] := aux;
 
        (*
            parcourir le tableau tout en amenant les éléments infèrieurs à
            l'élément pivot au début de la plage
        *)
        p := deb;
        for i:=deb+1 to fin do begin
            if (t[i] < t[deb]) then begin
                p := p + 1;
                aux := t[i];
                t[i] := t[p];
                t[p] := aux;
            end;
        end;
 
        (* 
            mettre le pivot à la position adéquate càd 
            à la suite des éléments qui lui sont inférieurs
        *)
        aux := t[p]; 
        t[p] := t[deb]; 
        t[deb] := aux;
 
        tri_rapide(deb, p - 1, t); (* trie le sous tableau à gauche *)
        tri_rapide(p + 1, fin, t); (* trie le sous tableau à droite *)
    end;
end;
begin
remplir(n,t);
writeln('le tableau avant tri');
writeln;
affichage(n,t);
tri_rapide(1,n,t);
writeln;
writeln('le tableau trié est');
writeln;
affichage(n,t);
end.


 
Revenir en haut
Publicité






Posted: Thu 1 Apr - 22:54 (2010)    Post subject: Publicité

PublicitéSupprimer les publicités ?
 
Revenir en haut
KARIMOS
Administrateur

Offline

Joined: 02 Nov 2008
Posts: 711
Masculin
Point(s): 4,448
Moyenne de points: 0

Posted: Sun 4 Apr - 16:12 (2010)    Post subject: Tri Rapide Reply with quote

merci pour le partage  Okay

 
Revenir en haut
Contenu Sponsorisé






Posted: Today at 01:43 (2019)    Post subject: Tri Rapide

 
Revenir en haut
Display posts from previous:   
bg bd
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Algorithmique & programmation -> Algorithmes avancés All times are GMT + 1 Hour
 
Page 1 of 1

 
Jump to:  
Index | Make forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation