Re: "Interleave" permutation algorithm?
- From: Willem <willem@xxxxxxxx>
- Date: Wed, 26 Aug 2009 07:25:12 +0000 (UTC)
) One way:
) e = 2; // Start with the first out of place element (the second)
) t = element[e];
) compute e2 = where element[e] *should* go
) if e == e2 then element[e2] = t, done
) swap t, element[e2]
) e = e2;
) That generalizes to general reordering if you search through the array
) looking for out of place elements, rather than just assuming it's only
) one group starting with the second element.
You'll have to generalize then, because the permutation the OP wants
is not comprised of a single group.
(In the case of 0123456789, the 3 and 6 are exchanged for example.)
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !