View source code Display the source code in std/algorithm/sorting.d from which this page was generated on github. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

Function std.algorithm.sorting.completeSort

Sorts the random-access range chain(lhs, rhs) according to predicate less. The left-hand side of the range lhs is assumed to be already sorted; rhs is assumed to be unsorted. The exact strategy chosen depends on the relative sizes of lhs and rhs. Performs Ο(lhs.length + rhs.length * log(rhs.length)) (best case) to Ο((lhs.length + rhs.length) * log(lhs.length + rhs.length)) (worst-case) evaluations of swap.

Prototype

void completeSort(alias less, std.algorithm.mutation.SwapStrategy ss, Range1, Range2)(
  SortedRange!(Range1,less) lhs,
  Range2 rhs
)
if (hasLength!Range2 && hasSlicing!Range2);

Parameters

NameDescription
less The predicate to sort by.
ss The swapping strategy to use.
lhs The sorted, left-hand side of the random access range to be sorted.
rhs The unsorted, right-hand side of the random access range to be sorted.

Example

import std.range : assumeSorted;
int[] a = [ 1, 2, 3 ];
int[] b = [ 4, 0, 6, 5 ];
completeSort(assumeSorted(a), b);
assert(a == [ 0, 1, 2 ]);
assert(b == [ 3, 4, 5, 6 ]);

Authors

Andrei Alexandrescu

License

Boost License 1.0.

Comments