划分算法 - 排列问题.docVIP

  • 5
  • 0
  • 约1.7万字
  • 约 4页
  • 2017-08-10 发布于河南
  • 举报
划分算法 - 排列问题

分治算法——排列问题 2011-08-05 15:10:52| 分类: HYPERLINK /blog/#m=0t=1c=fks_084064087094080075081086082095085081080071092084083074083分治算法 |字 jm号大中小 订阅 设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。 分析:设R={r 1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。 ,集合X中元素的全排列记为perm(X)。其中(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下: 当n=1时,perm(R)=(r),其中r是集合R中唯一的元素; 当n1时,perm(R)由(r1)perm(R1),(r2)perm(R2),…,(rn )perm(Rn)构成。 思路是递归产生前缀是list[0:k-1],且后缀是list[k:m]的全排列的所有排列。……算法将list[k:m]中每一个元素分别与list[k]中元素交换。然后递归地计算list[k+1:m]的全排列,并将计算结果作为list[0:k]的后缀。 1)切记Perm(list,k,m)是产生从k开始到m结束的所有全排列,这个很重要。要产生所有全排列,只要调用这个函数就行了,至于这个函数怎么实现,先不要去管。(一开始理解

文档评论(0)

1亿VIP精品文档

相关文档