How to merge two sorted arrays in Pascal

1 Answer

0 votes
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

*)

 



answered Feb 5, 2025 by avibootz
...