- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 变治法; (1)实例化简——同样问题
6.1 预排序
6.2 高斯消去法
6.3 平衡查找树—AVL树
(2)改变表现——同样实例
6.3 2-3树
6.4 堆和堆排序
6.5 霍纳法则和二进制幂
(3)问题化简——另一问题
6.6
;6.1 预排序;例1、检验数组中元素的唯一性
蛮力法如何做?时间效率是多少?
如果先排序,则如何检查元素的唯一性?
只需检查相互紧挨的元素。
PresortElementUniqueness(A[0..n-1])
//先对数组排序再验证唯一性
//输入:数组A
//输出:若A没有相等的元素,返回“true”,否则返回“false”.
对数组排序;
for i=0 to n-2 do
if A[i]=A[i+1] return false
return true
;预排序;;;6.2 Gauss消去法;1、高斯消元法;高斯消元法;高斯消元法举例:;高斯消元法的伪代码;高斯消元法的效率分析
基本操作:乘法
执行次数:易见,三重循环
C(n)∈Θ(n3);2、LU分解法; ;记原方程组为 A X =b
A=LU
则原方程组为LUX=b
其求解转化为两个三角形方程组的求解:
LY=b —— 下三角方程组
UX=Y ——上三角方程组
;LU分解法;评价;3、计算矩阵的逆;计算矩阵的逆;3、计算矩阵的行列式;计算矩阵行列式;;6.3 平衡查找树;把一个集合变换成一棵二叉查找树是改变表现技术的一个实例
好处是:
在平均情况下,查找,插入,删除的效率是Θ(logn)
最差情况下, Θ(n),退化成线性的情况
;;6.3.1 AVL树;AVL树的效率评价;6.3.2 2-3树;2-3树的搜索与插入;;插入算法:
当一个结点x需要插入到2-3树中的时候,总是根据它的大小关系,把其插入到叶结点中。
插入前首先调用搜索算法找到待插入的叶结点,如果该叶结点是2-node型的,则直接插入即可;
如果该叶结点是3-node型的,在按序插入到叶结点后,需要把叶结点拆分(因为插入后使得叶结点的关键字个数为3,不满足2-3树的要求)。
拆分过程首先在三个关键字挑选值在中间的关键字,提到上一层,或者作为新结点,或者插入原来的内结点中;关键字最小的作为左子树,关键字最大的作为右子树。如果内结点的插入导致结点过大,按照上述规则继续拆分。;2-3树的效率分析;6.4 堆和堆排序;1 堆的定义
堆是一棵二叉树,??中节点包含键,满足下面两个条件:
树的形状:二叉树
父母:每个节点的键都要大于或等于它子女的键。; 2自底向上构造法;2自底向上构造法;3 自顶向下构造法;4 堆结点的删除;6.4.2 堆排序;堆排序举例;堆排序举例;堆排序效率分析;6.3-6.4小结;6.5 Horner法则和二进制幂;当x=3时,计算p(x); 6.5.2 二进制幂
计算an的算法,有两种方法:
;6.6 问题化简;6.6.1 求最小公倍数lcm(m,n);关联
m和n的最大公约数gcd(m,n)是m和n所有公共质因子的积。
并且lcm(m,n)=m·n/gcd(m,n)
问题化简
转换为求最大公约数gcd(m,n)的高效的欧几里德算法;6.6.2 计算图中的路径数;6.6.3 优化问题的化简;6.6.4 线性规划;线性规划问题是一个多变量线性函数的最优化问题。
这些变量要满足的约束是以线性等式或线性不等式的形式出现。
可以为各种应用建模,如排班,交通和通信网络规划,石油勘探和提纯。
解线性规划问题的算法:
单纯形法
Karmarkar算法
;;6.6.5 简化为图论问题;对过河问题,画出人、狼、羊、菜的状态空间图后即可以发现有两条路径,这两条路径就是问题的两个解。;过河问题;(1,1,1,1) (1,1,1,0) (1,1,0,1) (1,0,1,1) (1,0,1,0)
(0,0,0,0) (0,0,0,1) (0,0,1,0) (0,1,0,0) (0,1,0,1);小结
文档评论(0)