On Thursday, 4 February 2016 at 01:24:15 UTC, Andrei Alexandrescu wrote:
This appears a simple problem: given numbers a, b, c, d, e, swap them around so as to place the median in c and partition the others around it. I.e. the postcondition is: a <= c && b <= c && c <= d && c <= e.

<snip>

So there's got to be a better solution. Your challenge - should you choose to accept it :o) - is an algorithm that does the partitioning in 6 comparisons and <= 9 swaps, which is idempotent: when applied twice, it always does 0 swaps.

Well if we look at it, the max compares for optimal sorting algorithm is the log2 of the max combinations in how the elements could be arranged; !5 = 120 or 7 compares.

I'm not sure of the max swaps, seems like it could be 4 if done right, but that might be impractical.

Reply via email to