满意答案
vfbhg67g
2013.09.11
采纳率:58% 等级:12
已帮助:4804人
在n个不同元素中找出第K个最大元素。
program search_k;
var i,j,k:integer;
a:array[1..100] of integer;
procedure search(b,e:integer);
var i,m,t:integer;
begin
if b=e then begin j:=b;exit end;
i:=b;j:=e;m:=a[k];
repeat
while a[i]>m do inc(i);
while m>a[j] do dec(j);
if i
until i>=j;
if i=k then exit;
if i>k then search(b,j) else search(j+1,E);
end;
procedure print(n:integer);
var i:integer;
begin
for i:=1 to n do write(a[i],' ');
writeln;
writeln('a[',k,']=',a[k]);
end;
begin
write('n='); readln(n);
write('a[1..',n,']=');
for k:=1 to n do read(a[k]);
readln;
write('k=');readln(k);
search(1,n);
print(n);
end.
01分享举报