给定一个元素列表,是否存在洗牌算法来保证最终选定的一半部分位于一侧,而其余部分位于另一侧?
示例:{ 4, 3, 10, 7, 2, 9, 6, 8, 1, 5 }
鉴于上面的集合,我希望有一个混合算法,最终将标记的向左移动,即使算法本身不知道什么是“标记”和没有“标记”。
{ 4, 3, 10, 7, 2, 9, 6, 8, 1, 5 }
X X X X X
可接受的结果是:
{ 4, 10, 9, 6, 1, 3, 7, 2, 8, 5 }
{ 1, 9, 10, 4, 6, 2, 8, 5, 7, 3 }
{ 1, 4, 9, 10, 6, 3, 7, 5, 8, 2 } 等
难点:算法不应该使用随机数来混合内容,它应该是一个迭代过程。所以费舍尔-耶茨出局了。