Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure Merge(var Arr: NArr; Left, Right: Integer);
- var
- Middle, Start, Last, i: Integer;
- Mass: array[0..100] of Integer;
- begin
- Middle := (Left + Right) div 2;
- Start := Left;
- Last := Middle + 1;
- for i := Left to Right do
- if (Start <= Middle) and ((Last > Right) or (Arr[Start] < Arr[Last])) then
- begin
- Mass[i] := Arr[Start];
- Inc(Start);
- end
- else
- begin
- Mass[i] := Arr[Last];
- Inc(Last);
- end;
- for i := Left to Right do
- Arr[i] := Mass[i];
- end;
- procedure MergeSort(var Arr: NArr; Left, Right: Integer);
- begin
- if Left < Right then
- begin
- MergeSort(Arr, Left, (Left + Right) div 2);
- MergeSort(Arr, (Left + Right) div 2 + 1, Right);
- Merge(Arr, Left, Right);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement