合并两个有序数列成一个新的有序数列。

program unite;
var
        m, n, i, pa, pb : integer;
        a, b : array[1 .. 50] of integer;
        u : array[1 .. 100] of integer;
begin
        readln(n, m);
        for i := 1 to n do
                read(a[i]);
        for i := 1 to m do
                read(b[i]);
        pa := 1;
        pb := 1;
        for i := 1 to n+m do
        begin
                if a[pa] > b[pb] then
                begin
                         u[i] := b[pb];
                         pb := pb+1;
                end
                else
                begin
                         u[i] := a[pa];
                         pa := pa+1;
                end;
                if (pa > n) or (pb > m) then
                         break;
        end;
        if pa > n then
                for i := i+1 to n+m do
                begin
                      u[i] := b[pb];
                      pb := pb+1;
                end
        else
                for i := i+1 to n+m do
                begin
                      u[i] := a[pa];
                      pa := pa+1;
                end;
        for i := 1 to n+m do
                write(u[i], '  ');
        readln;
        readln;
end.
posted @ 2010-01-21 18:52  SmartIOI  阅读(493)  评论(2)    收藏  举报
本站采用CC授权如需转载、引用文章,请务必附上作者及来源处。 Creative Commons License