1.5-组合数学之全排列的生成算法.ppt

上传人:99****p 文档编号:1584650 上传时间:2019-03-06 格式:PPT 页数:30 大小:690KB
下载 相关 举报
1.5-组合数学之全排列的生成算法.ppt_第1页
第1页 / 共30页
1.5-组合数学之全排列的生成算法.ppt_第2页
第2页 / 共30页
1.5-组合数学之全排列的生成算法.ppt_第3页
第3页 / 共30页
1.5-组合数学之全排列的生成算法.ppt_第4页
第4页 / 共30页
1.5-组合数学之全排列的生成算法.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、1.5 全排列的生成算法全排列的生成算法1.2 一一对应原理Yiqiang Wei 1.5 全排列的生成算法全排列的生成算法 就是对于给定的字符集 ,用有效的方法将所有可能的全排列无重复无遗漏地枚举出来。 这里介绍全排列算法四种:(A)字典序法(B)逆序数法(C)递减 进位制数法(D)邻位对换法Yiqiang Wei 1.5 全排列的生成算法1.5.1字典序法字典序: 设字符集 A=a1,a2, , an有序: a1 a2 an则字符串集 = p1p2 pm| pi A, m N 按下列方式定义的序称为 字典序 :p1p2 pm q1q2 ql 当且仅当p1=q1, p2=q2, , pm =

2、qm 或存在 k m-1,使得 p1=q1, , pk=qk, pk+1 qk+1 Yiqiang Wei 1.5 全排列的生成算法 按字典序规定两个全排列的先后是从左到右逐个比较对应的字符的先后。字典序法: 一个全排列可看做一个字符串,按字典序给出全排列的序称为字典序法例如 ,字符集 1,2,3,较小的数字较先 ,这样按字典序生成的全排列顺序是 :123,132,213,231,312,321。 两个字符串, 相同前缀越长的越靠近 。Yiqiang Wei 1.5 全排列的生成算法如何 生成给定全排列的下一个排列所谓 一个的下一个 就是这一个与下一个之间没有其他的。这就要求这一个与下一个有尽

3、可能 长的 共同前缀 ,也即变化限制在尽可能 短 的 后缀上。例如 839647521是 1-9的排列。 19 的排列最前面的是 123456789,最后面的是 987654321,从右向左扫描若都是增的,就到 了 987654321,也就没有下一个了。否则找出第一次出现下降的位置。Yiqiang Wei 在 839647521中从右向左第一个小于右边数字的是元素 47 5 2 1 74 7 422411在后缀 7521中找出比 4大的数 7 5找出其中比 4大的最小数 55 4 、 5 对换 8396 7 214后缀变为 7421 将此后缀翻转 12 4 7接上前缀 83965得到 8396

4、51247即 839647521的下一个排列为 839651247 。为后缀大于 4的用 橙 色表示小于 4的用 绿 色表示1.5 全排列的生成算法Yiqiang Wei 1.5 全排列的生成算法首先,在排列中从右向左找出第一个小于右边元素的元素,记为 a 。右边部分构成 后缀 。由字典序法产生下一个排列的步骤其次,在后缀找出大于 a 的最小元素,记为 b第三,对换元素 a 与 b最后,对新的后缀进行翻转,得到所求。Yiqiang Wei 1.5 全排列的生成算法由字典序法产生下一个排列的步骤例 1 在字典序下求 731598642的下一个 排列Yiqiang Wei 在 1,n的全排列中 ,n n-1 321是最后一个排列 ,其中介数是 (n-1,n-2,.,3,2,1)其序号为n-1kk!k=1另一方面可直接看出其序号为 n!-1n-1 n-1于是 n!-1= kk! 即 n!=kk! +1k=1 k=1Yiqiang Wei 1.5.1字典序法一般而言,设 P是 1,n的一个全排列。P=P1P2 Pn=P1P2P j-1PjPj+1P k-1PkPk+1 Pnj=maxi|PiPj对换 Pj, Pk,将 Pj+1P k-1PjPk+1 Pn翻转,P= P1P2P j-1PkPnP k+1PjPk-1P j+1即 P的下一个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。