mergesort(field A, int l, int r) {
mergesort(A, l, r, true);
}
mergesort(field A, int l, int r, bool asc) {
if (l < r) then {
q:= (l+r) div 2;
do parallel {
mergesort(A, l, q, true);
mergesort(A, q+1, r, false);
}
merge(A, l, r, asc);
}
}
merge(field A, int l, int r, bool asc) {
...
}
|