2007-08-22
二分查找法完整版 - [Algorithms]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://conoon.blogbus.com/logs/7858689.html
program jjzx(input,output);
var
a:array[1..10] of integer;
i,j,n,x:integer;
begin
writeln('输入10个从小到大的数:');
for i:=1 to 10 do read(a[i]);
writeln('输入要查找的数:');
readln(x);
i:=1; n:=10; j:=trunc((i+n)/2);
if a[n]
writeln('查找失败,数组中无此元素!')
else
begin
repeat
if a[j]>x then
begin
n:=j; j:=trunc((i+n)/2)
end
else
begin
i:=j+1; j:=trunc((i+n)/2)
end
until (a[j]=x) or (i=j) ;
if a[j]=x then
writeln('查找成功!位置是:',j:3)
else
writeln('查找失败,数组中无此元素!')
end
end.
想想还有其他的方法解决X大于数组中的任何一个数的方法这种情况的方法吗?
随机文章:
收藏到:Del.icio.us





