作业帮 > 综合 > 作业

如何编程在一个有序数列中二分查找第一个比给定元素X大的数的位置(pascal)

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/02 20:40:10
如何编程在一个有序数列中二分查找第一个比给定元素X大的数的位置(pascal)
比如 x=5 a=1,3,6,9,10
函数返回3
如何编程在一个有序数列中二分查找第一个比给定元素X大的数的位置(pascal)
const maxn=100;
var a:array[0..maxn] of longint;
l,r,x,m,n,i:longint;
begin
readln(x,n);
for i:=1 to n do read(a[i]);
l:=1;
r:=n;
m:=0;
while r-l>1 do
begin
m:=(l+r) div 2;
if a[m]>x then r:=m
else l:=m;
end;
writeln(r);
end.