Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TForm1.btn3Click(Sender: TObject); //формированпие массива-1000
- var
- i,j,temp:integer;
- obr, verh, niz, sred:integer;
- found:boolean;
- n:integer;
- begin
- Randomize;
- for i:=1 to High(mas3) do
- mas3[i]:=Random(1000);
- begin
- for i:= 1 to High(mas3)-1 do
- for j:=i+1 to High(mas3) do
- if mas3[i]>Mas3[j] then
- begin
- temp:=mas3[i];
- Mas3[i]:=mas3[j];
- Mas3[j]:=temp;
- end;
- end;
- for i:=1 to High(mas3) do begin
- strngrd2.Cells[i,0]:=IntToStr(mas3[i]);
- end;
- begin
- {бинарный поиск}
- obr:=StrToInt(form1.edt1.text); //элемент, который мы ищем
- verh:=1;
- niz:=High(mas3);
- n:=0;
- found:=false;
- Lbl3.caption:=' ';
- repeat
- sred:=Trunc((niz-verh)/2)+verh; //элемент,который находится в сережине
- n:=n+1;
- if mas3[sred]=obr then found:=TRUE
- else
- if obr<Mas3[sred] then
- niz:=sred-1
- else verh:=sred+1;
- until (verh > niz) or found;
- if found then
- Lbl3.Caption:=Lbl3.Caption + IntToStr(n); //выводим кол-во сравненрий, которое понадобилось для поиска
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement