Algorithme de recherche dichotomique

Résolu
Bonjour,
salut je cherche tout informations sur le recherche dichotomique en algorithme svp
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Modérateur
    Je n'ai pas compris ta question. As-tu lu le lien ci-dessus ?
    2
    1. voila, c la répense de votre question:
      program recherche_dichotomique;
      uses wincrt;
      type vect=array [1..50] of integer;
      var n,e,i:integer;
      t:vect;
      exist:boolean;
      procedure remplir (var t:vect;var n:integer);
      var i:integer;
      begin
      repeat
      write ('taper un entier:'); readln (n);
      until n in [1..50];
      write ('t[',1,']='); readln (t[1]);
      for i:=2 to n do
      begin
      repeat
      write ('t[',i,']='); readln(t[i]);
      until t[i]>=t[i-1];
      end;
      write ('donner e:'); readln (e);
      end;
      function rech_dicho (var t:vect; var n,i:integer):boolean;
      var trouve:boolean;
      m,debut,fin:integer;
      begin
      debut := 1;
      fin:=n;
      trouve:=false;
      repeat
      m:=(debut+fin)div 2;
      if t [m]= e then begin
      trouve:= true;
      end
      else if t[m]<e then begin
      debut:= m+1;
      end
      else begin
      fin:=m-1;
      end;
      until (trouve=true) or (debut>fin);
      rech_dicho:=true;
      end;
      begin
      remplir (t,n);
      exist:=rech_dicho (t,n,e);
      if exist = true then begin
      write (e ,'existe dqns T');
      end
      else begin
      write (e ,'n"existe pas dans T');
      end;
      end.
      0
    2. @yossratu dois ajouter le morço en gra ds ton code. à par ça tout va tre bien:uses wincrt;
      type vect=array [1..50] of integer;
      var n,e,i:integer;
      t:vect;
      exist:boolean;
      procedure remplir (var t:vect;var n:integer);
      var i:integer;
      begin
      repeat
      write ('taper un entier:'); readln (n);
      until n in [1..50];
      write ('t[',1,']='); readln (t[1]);
      for i:=2 to n do
      begin
      repeat
      write ('t[',i,']='); readln(t[i]);
      until t[i]>=t[i-1];
      end;
      write ('donner e:'); readln (e);
      end;
      function rech_dicho (var t:vect; var n,i:integer):boolean;
      var trouve:boolean;
      m,debut,fin:integer;
      begin
      debut := 1;
      fin:=n;
      trouve:=false;
      repeat
      m:=(debut+fin)div 2;
      if t [m]= e then begin
      trouve:= true;
      end
      else if t[m]<e then begin
      debut:= m+1;
      end
      else begin
      fin:=m-1;
      end;
      until (trouve=true) or (debut>fin);
      if trouve=true then
      rech_dicho:=true
      else
      rech_dicho:=false;
      end;

      begin
      remplir (t,n);
      exist:=rech_dicho (t,n,e);
      if exist = true then begin
      write (e ,'existe dqns T');
      end
      else begin
      write (e ,'n"existe pas dans T');
      end;
      end.
      0
    3. @chetouaniSvp Aidez Moi j vx un programme En Java qui suprime les elemnt double dans un tableau par exemple
      on a un tableau : 22233455677
      le 2eme tableau va aficher 234567 svp aidez moi
      0
    4. voila, c la réponse de votre question:
      program recherche_dichotomique;
      uses wincrt;
      type vect=array [1..50] of integer;
      var n,e,i:integer;
      t:vect;
      exist:boolean;
      procedure remplir (var t:vect;var n:integer);
      var i:integer;
      begin
      repeat
      write ('taper un entier:'); readln (n);
      until n in [1..50];
      write ('t[',1,']='); readln (t[1]);
      for i:=2 to n do
      begin
      repeat
      write ('t[',i,']='); readln(t[i]);
      until t[i]>=t[i-1];
      end;
      write ('donner e:'); readln (e);
      end;
      function rech_dicho (var t:vect; var n,i:integer):boolean;
      var trouve:boolean;
      m,debut,fin:integer;
      begin
      debut := 1;
      fin:=n;
      trouve:=false;
      repeat
      m:=(debut+fin)div 2;
      if t [m]= e then begin
      trouve:= true;
      end
      else if t[m]<e then begin
      debut:= m+1;
      end
      else begin
      fin:=m-1;
      end;
      until (trouve=true) or (debut>fin);
      rech_dicho:=trouve; {sinon l'élément sera toujours existant dans le tableau}
      end;
      begin
      remplir (t,n);
      exist:=rech_dicho (t,n,e);
      if exist = true then
      writeln (e,' existe dqns T')
      else
      writeln (e,' n''existe pas dans T');
      end.
      0
  2. salut je cherche la solutions d'une fonctions de recherche dichotimique dans un tableau trié
    merci pour vous
    0