一个能存放20个整数的数组中存放了18个已按从小到大顺序排列的整数。现在输入两个整数插入到该数组中

一个能存放20个整数的数组中存放了18个已按从小到大顺序排列的整数。现在输入两个整数插入到该数组中要求数组中各个元素仍然按从小到大的顺序排列

以下是pascal的有序插入代码,供参考。
Var
    A:array[1..10000] of integer;
    i,n:integer;

Procedure insert(var n:integer;x:integer);
Var I,j:integer;
Begin
    if n=0 then a[1]:=x
    else If x>a[n] then a[n+1]:=x
    Else if x<=a[1] then begin
        For I:=n downto 1 do a[i+1]:=a[i];
        A[1]:=x;
    End
    Else begin
        For I:=1 to n-1 do if (x>a[i])and(x<=a[i+1] ) then begin j:=I; break; end;
        For I:=n downto j+1 do a[i+1]:=a[i];
        A[j+1]:=x;
    End;
    Inc(n);
End;

begin
n:=0;
for i:=58 downto 1 do insert(n,i);
for i:=2 to 57 do insert(n,i);
for i:=1 to n do write(a[i]:3);
end.

温馨提示:答案为网友推荐,仅供参考
相似回答