Best shuffle: Difference between revisions

Content added Content deleted
(→‎{{header|D}}: more concise)
Line 634: Line 634:
auto s = o.dup;
auto s = o.dup;
randomShuffle(s);
randomShuffle(s);
foreach(i, ref ci; s)
foreach (i, ref ci; s)
foreach(j, ref cj; s)
foreach (j, ref cj; s)
if (i != j && ci != o[j] && cj != o[i]) {
if (ci != cj && ci != o[j] && cj != o[i]) {
swap(ci, cj);
swap(ci, cj);
break;
break;