Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 11-07-2011 10:29:09

ngatilio
Membre
Inscription : 18-09-2010
Messages : 14

Tri dichotomique(en pascal ou delphi)

je propose  un algorithme de tri dichotomique en pascal 7.0

program tri_dichotomique;
const max=100;
uses crt;
type vector : array [1..max] of integer;
var
    Tab , mot : vector;
    i , j : integer;
    inf ,  sup , position,Temp : longint;

procedure lire;
begin
        for i:=1 to max do
           begin
                   write ('Entrer un mot dans la liste');
                   read (Tab[i]);
            end;
end;
procedure Tri ;
begin
         For i:=1 to max-1 do
            begin
                 For j:=i+1 to max do
                   begin
                         while  Tab[i] > Tab[j] do
                             begin
                                    Tab[i]:= Temp;
                                    Tab[j]:=Tab[i];
                                    Temp:=Tab[j];
                             end;
                   end;
            end;
end;
procedure position ;
begin
       write ('Entrer le mot a chercher :');
       read (mot [i]);
       inf:=1; sup:=max;
       position:=(inf+sup+1) div 2 ;
       repeat
                while mot [i] <>Tab [position] and sup <>inf do
                begin
                if  inf := sup-1  then  inf := sup;
                if  inf = sup  then  exit ;
                while mot [i] <Tab [position] do
                     begin
                            if  inf < position do sup:= position
                           
                            else inf := position;
                            position:=(inf+sup+1) div 2 ;                     
                      end;
                  if sup<>inf then  position:=(inf+sup+1) div 2 write ('Le mot est a la position',position)
                  else  write ('Le mot n'existe pas dans la liste');
               end;       
        false;
        readln;
end;
                                                 {programme principal}
begin
        clrscr;
       Textbackground (2);
       gotoxy(40,20);
       lire;
       clrscr;
       Tri;
       clrscr;
       Textbackground (5);
       gotoxy(40,20);     
       position;
       read();
end.

Hors ligne

#2 11-07-2011 12:57:46

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 984

Re : Tri dichotomique(en pascal ou delphi)

Salut,

Et merci.
De l'eau a coulé sous les ponts entre ma demande et aujourd'hui ; entretemps l'idée m'est venue (grâce à ta proposition en Pascal, de regrouper des algorithmes de tri dans une même discussion, ici :
http://www.bibmath.net/forums/viewtopic … 560#p30560...
J'en suis personnellement à dix et ce serait chouette que l'on puisse les proposer dans différents langages, non ?
Si je comprends bien, tu procèdes à un tri dichotomique, puis tu enchaînes par une recherche dichotomique : il n'y a pas qu'un algo de tri.
Pour une recherche sur disque, c'est vrai que la dichotomie est très très rapide !
SébastienB et thadrien s'y sont mis.
Pourquoi pas toi (dans la mesure de ton temps libre, bien sûr) ?

Cordialement,

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt dix-neuf plus quatre-vingt trois
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums