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 ( |
if (ci != cj && ci != o[j] && cj != o[i]) { |
||
swap(ci, cj); |
swap(ci, cj); |
||
break; |
break; |