用二分法查表法,查找从键盘输入的任意一个数,是否在下面的数据序列中。

来源:百度知道 编辑:UC知道 时间:2024/06/27 23:07:50
{ 9 ,16 ,25 ,32 ,2 ,1 ,29 ,81 ,36 }

pascal:
type
arr=array[1..9] of integer;
var
a:arr;
i,x,j,m,p,t:integer;
begin
for i:=1 to 9 do readln(a[i]);
for i:=1 to 9 do begin
a[p]:=a[j];
for j:=i to 9 do begin
if a[p]>a[j] then begin t:=a[j];a[j]:=a[p];a[p]:=t;end;
end;
end;
readln(x);
m:=5;
repeat
if x=a[m] then break;
if x<a[m] then m:=m-1;
if x>a[m] then m:=m+1;
until (m<1)or(m>10);
writeln(x,' is ',m,' in here');
end.