Advertisement
Guest User

Untitled

a guest
Jun 15th, 2013
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.25 KB | None | 0 0
  1. procedure TForm1.btn3Click(Sender: TObject);                //формированпие массива-1000
  2. var
  3.   i,j,temp:integer;
  4.   obr, verh, niz, sred:integer;
  5.   found:boolean;
  6.   n:integer;
  7. begin
  8.    Randomize;
  9.    for i:=1 to High(mas3) do
  10.    mas3[i]:=Random(1000);
  11.    begin
  12.     for i:= 1 to High(mas3)-1 do
  13.     for j:=i+1 to High(mas3) do
  14.     if mas3[i]>Mas3[j] then
  15.     begin
  16.       temp:=mas3[i];
  17.       Mas3[i]:=mas3[j];
  18.       Mas3[j]:=temp;
  19.     end;
  20.    end;
  21.  
  22.    for i:=1 to High(mas3) do begin
  23.      strngrd2.Cells[i,0]:=IntToStr(mas3[i]);
  24.    end;
  25.  
  26.  begin
  27.     {бинарный поиск}
  28.   obr:=StrToInt(form1.edt1.text);               //элемент, который мы ищем
  29.   verh:=1;
  30.   niz:=High(mas3);
  31.   n:=0;
  32.   found:=false;
  33.   Lbl3.caption:=' ';
  34.  
  35.   repeat
  36.   sred:=Trunc((niz-verh)/2)+verh;              //элемент,который находится в сережине
  37.   n:=n+1;
  38.    if mas3[sred]=obr then found:=TRUE
  39.    else
  40.      if obr<Mas3[sred] then
  41.      niz:=sred-1
  42.      else verh:=sred+1;
  43.   until (verh > niz) or found;
  44.  
  45.   if found then
  46.   Lbl3.Caption:=Lbl3.Caption + IntToStr(n);   //выводим кол-во сравненрий, которое понадобилось для поиска
  47.  end;
  48.  
  49. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement