program MergeSortedArrays;
procedure MergeArrays(arr1, arr2: array of Integer; var mergedArr: array of Integer);
var
i, j, k: Integer;
begin
i := 0;
j := 0;
k := 0;
while (i < Length(arr1)) and (j < Length(arr2)) do
begin
if arr1[i] <= arr2[j] then
begin
mergedArr[k] := arr1[i];
Inc(i);
end
else
begin
mergedArr[k] := arr2[j];
Inc(j);
end;
Inc(k);
end;
while i < Length(arr1) do
begin
mergedArr[k] := arr1[i];
Inc(i);
Inc(k);
end;
while j < Length(arr2) do
begin
mergedArr[k] := arr2[j];
Inc(j);
Inc(k);
end;
end;
var
arr1, arr2, mergedArr: array of Integer;
i: Integer;
begin
arr1 := [1, 3, 5, 7];
arr2 := [2, 4, 6, 8, 9];
SetLength(mergedArr, Length(arr1) + Length(arr2));
MergeArrays(arr1, arr2, mergedArr);
for i := 0 to High(mergedArr) do
begin
Write(mergedArr[i], ' ');
end;
end.
(*
run:
1 2 3 4 5 6 7 8 9
*)