完美洗牌算法
摘要:
完美洗牌问题:给定一个数组a1,a2,a3,...an,b1,b2,b3..bn,把它最终设置为b1,a1,b2,a2,...bn,an这样的。 分析:首先,有的问题要求把它换成a1,b1,a2,b2,...an,bn。其实也差不多。我们可以:循环n次交换a1,b1,a2,b2, 把数组变为b1,b2...bn,a1,a2...an,时间复杂度O(n),再用完美洗牌问题的算法。或者 先用完美洗牌算法,再循环n次交换每组相邻的两个元素,也是O(n)。所以,我们只研究第一行给出的问题。为方便起见,我们考虑的是一个下标从1开始的数组,下标范围是[1..2n]。 我们看一下每个元素最终去了什么地方.. 阅读全文
posted @ 2013-09-17 22:43 新一 阅读(536) 评论(0) 推荐(0)
浙公网安备 33010602011771号