hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, 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
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> Algorithmes avancés
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
eyos_A


Hors ligne

Inscrit le: 26 Fév 2010
Messages: 4
Point(s): 4
Moyenne de points: 0

Posté le: Jeu 1 Avr - 22:54 (2010)    Sujet du message: Tri Rapide Répondre en citant

PublicitéSupprimer les publicités ?
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
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Dim 4 Avr - 16:12 (2010)    Sujet du message: Tri Rapide Répondre en citant

merci pour le partage  Okay

 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 13:09 (2016)    Sujet du message: Tri Rapide

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> Algorithmes avancés Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation