主题
:
Array Puzzle
查看单个帖子
#
3
(
permalink
)
2008-04-21
polyrandom
超级版主
注册日期: 2002-09-03
帖子: 3,138
文章:
20
回复: Array Puzzle
其实如果把这个数列看成一个长度为2n的数列,每一项分别为a[0]到a[2n-1],那么转换以后的数列b有b[x] = a[x%2*n+x/2]。
可以使用交换的方法来做,把a[1]记下,然后从a[1]开始,运用上面的公式找到对应的元素,依次循环,可以确保只使用一个额外存储。但是这个是不完善的,因为这样的交换最终会形成一个环,而如果这个环不足以覆盖所有的元素,就需要进行下一次循环,而怎样计算下一次循环的起始点是个问题,我没找到统一的规律。
polyrandom
查看公开信息
发送悄悄话给 polyrandom
查找 polyrandom 发表的所有帖子
查看 Blog