全排列——邻位对换法.docxVIP

  • 60
  • 0
  • 约3.19千字
  • 约 8页
  • 2020-12-24 发布于山东
  • 举报
全排列—— 位 法 (算法)全排列—— 位 法 一个能 快速生成全排列的算法叫做 位 法,它之所以 快,是因 位 法中下一个排列 是上一个排列某相 两位 得到的, 只需一步, 就可以得到一个新的全排列,而且 不重复,但是由于每将 n 从一端移 到另一端后,就需要遍 排列 2 次,来 找最大的可移数 m ,所以速度得到了限制。它的原理是: 的全排列可由 [n-1] 的全排列生成: 定 [n-1] 的一个排列 п , 将n 由最右端依次插入排列得到 n 个[n] 的排列:  п ,即 P1 P2  ?  P(n -1) n P1 P2  ?  n P(n -1) n P1 P2  ?  P(n-1) 上述 程,一般地,  i,将前一步所得的每一排列重复  i 次,然后将 i 由第一排的最后往前移,至最前列,正好走了 i 次 ,下一个接着将 i 放在下一排列的最前面,然后依次往后 移,一直下去即得 i 元排列。 考 {1,2 ? n} 的一个排列,其上每一个整数都 了一个方向, 如果它的箭 所指的方向的 点小于它本身,我 称整数 k 是可移的。 然 1 永 不可移, n 除了以下两种情形外,它都是可移的 : n 是第一个数,且其方向指向左 n 是最后一个数,且其方向指向右 于是,我 可按如下算法 生所有排列: 1,开始 :存在排列 123?

文档评论(0)

1亿VIP精品文档

相关文档