Простой пример сортировки 2х упорядоченных массивов слиянием.
uses crt; var a,b,c:array[1..500] of integer; n,m,i,j,k:integer; begin clrscr; write('n=');readln(n); write('m=');readln(m); writeln('Massiv A:'); for i:=1 to n do begin a[i]:=2*i+1;{введем нечетные числа} write(a[i],' ');{введем четные числа} end; writeln; writeln('Massiv B:'); for i:=1 to m do begin b[i]:=2*i; write(b[i],' '); end; writeln; i:=1; j:=1; k:=1; {устанавливаем счётчики} while (i<=n) or (j<=m) do {пока не дошли до конца каждого из массивов} begin if (i<=n) and (j<=m) then {если оба массива ещё не закончились} begin if a[i]<b[j] then {то пишем в новый массив меньший из текущих элементов} begin c[k]:= a[i]; inc (i); {переходим к следующему элементу соответствующего массива} inc (k); {переходим к следующему элементу конечного массива} end else begin c[k]:= b[j]; inc (j); inc (k); end end else if j>m then {иначе один из массивов уже закончился} begin {и мы пишем из того, в котором ещё есть элементы} c[k]:= a[i]; inc (i); inc (k); end else if i>n then begin c[k]:= b[j]; inc (j); inc (k); end; end; writeln('Massiv C:'); for i:=1 to m+n do write(c[i],' '); readln end.