On Thursday, 22 January 2015 at 23:35:32 UTC, H. S. Teoh via
Digitalmars-d wrote:
On Thu, Jan 22, 2015 at 02:51:38PM -0800, H. S. Teoh via
Digitalmars-d wrote:
Wait, if R1 and R3, after the recursion, are sorted and
contain only
unique elements, doesn't that mean that we can just collapse
R2 into a
single element along with the endpoints of R1 and R3? So if
R1[$-1] <
pivot, then we're done, otherwise coalesce it with the pivot,
and
likewise with R3[0].
I'm pretty sure that when Andrei said:
> C. Sort-move-unique R2 into the portion after R11, obtaining
> the
> result.
He meant R3, not R2. R2 is obviously collapsed to one element
(the pivot).
Working proof of concept:
I think this will actually have worse performance than sort+uniq,
since you're now shuffling half of the elements at each recursion
depth - an additional O(n log n).