Sorting algorithms/Merge sort: Difference between revisions
m
→{{header|Component Pascal}}
(→{{header|Component Pascal}}: Modified to show that the sort is stable) |
|||
Line 2,937:
RETURN t.TakeSort(n, s) (* Return the sorted list *)
END Sort;
END RosettaMergeSort.
</syntaxhighlight>
Interface extracted from implementation:
<syntaxhighlight lang="oberon2">
DEFINITION RosettaMergeSort;
TYPE
Template = ABSTRACT RECORD
(IN t: Template) Before- (front, rear: ANYPTR): BOOLEAN, NEW, ABSTRACT;
(IN t: Template) Next- (s: ANYPTR): ANYPTR, NEW, ABSTRACT;
(IN t: Template) Set- (s, next: ANYPTR): ANYPTR, NEW, ABSTRACT;
(IN t: Template) Sort (s: ANYPTR): ANYPTR, NEW
END;
END RosettaMergeSort.
|