- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《agorithm
1.概述
1.1算法
算法是指解决问题的一种方法或过程。
算法是由若干条指令组成的有穷序列
算法满足性质:
(1)输入:
(2)输出:
(3)确定性:
(4)有限性:
1.2算法与程序
程序是算法用某种程序设计语言的具体实现。
程序可以不满足算法的有限性性质。
例如:操作系统,是一个在无限循环中执行的程序,因而不是一个算法。
操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。
算法复杂性C依赖于问题规模N、算法输入I和算法本身A。
1.3函数渐进界
(1) f(n)=O(g(n))
若存在正数c和n0使得对一切n≥n0有0≤f(n)≤cg(n)
(2) f(n)= Ω(g(n))
若存在正数c和n0使得对一切n≥n0有0≤cg(n)≤ f(n)
(3) f(n)=o(g(n))
对任意正数c存在n0使得对一切n≥n0有0≤f(n)cg(n)
(4) f(n)=ω(g(n))
对任意正数c存在n0使得对一切n≥n0有0≤cg(n)f(n)
(5) f(n)=Θ(g(n)) ? f(n)=O(g(n)) 且f(n)=Ω(g(n))
设f , g, h 是定义域为自然数集N上的函数:
(1)如果f =O(g)且g=O(h),那么f =O(h).
(2)如果 f =Ω(g)且g=Ω(h),那么f =Ω(h).
(3)如果f =Θ(g)和g=Θ(h),那么f =Θ(h).
(4) O(f(n))+O(g(n)) = O(max{f(n),g(n)})
(5) O(f(n))+O(g(n)) = O(f(n)+g(n))
(6) O(f(n))*O(g(n)) = O(f(n)*g(n))
设f , g, h 是定义域为自然数集N上的函数,若对某个其它的函数h, 我们有f =O(h)和g=O(h),那么
f + g = O(h).
假设f 和g是定义域为自然数集合的函数,且满足g=O(f),那么
f +g=Θ(f).
分治法
2.1 问题特征
分治法所能解决的问题一般具有以下几个特征:
该问题的规模缩小到一定的程度就可以容易地解决;
该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;
利用该问题分解出的子问题的解可以合并为该问题的解;
该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
2.2递推方程
2.3整数划分
最后一种情况,分两种,
(a). 划分中包含m的情况,即{m, {x1,x2,...xi}}, 其中{x1,x2,... xi} 的和为n-m,可能再次出现m,因此是(n-m)的m划分,因此这种划分个数为f(n-m, m);
(b). 划分中不包含m的情况,则划分中所有值都比m小,即n的(m-1)划分,个数为f(n,m-1);
因此 f(n, m) = f(n-m, m)+f(n,m-1);
2.4汉诺塔问题
首先把A 柱上面的n- 1 个碟子通过C 柱移到B 柱上【T(n-1)步】,然后把A 柱剩下的一个碟子移到C 柱上【1步】, 最后把B 柱上所有的碟子通过A 柱移到C 柱上【T(n-1)步】。很容易得到算法的递归方程为:T(n)=2*T(n-1)+1,
2.5二分搜索法
2.6棋盘覆盖
在一个2k×2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。
2.7合并排序
2.8线性时间选择
2.9循环赛日程表
2.10快速排序
3.动态规划
3.1基本步骤,要素
要素基本步骤
(1)找出最优解的性质,并刻画其结构特征。
(2)递归地定义最优值。
(3)以自底向上的方式计算出最优值。
(4)根据计算最优值时得到的信息,构造最优解。
最优子结构
重叠子问题
备忘录(表格)
3.2矩阵连乘问题
3.3最长公共子序列
递推方程:
算法时间复杂度:
构造最优解算法复杂度:b,存储当前位置是怎么生成的(1,2,3)三个选项
3.4凸多边形最优三角剖分
与矩阵连乘一样
3.5多边形游戏
3.6图像压缩问题
B代表该段每个像素需要几位表示。
每段最大像素个数为256,“+11”是头文件,记录该段共有几个元素,都是用几位二进制表示的
从后往前划分
3.6最大子段和问题
3.7投资问题
3.8 0-1背包
3.9 0-N背包
3.10 最优二叉搜
文档评论(0)