- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
l自制07工硕算法分析参考资料
算法的知识结构
算法概述
1. 什么是算法:
书本:算法是由若干条指令组成的有穷序列。具有性质:输入、输出、确定性、有限性(程序与算法的主要区别)、能行性。
课堂:寻找解的过程(Search);递归反复的寻找最优解(research)。
算法复杂性:算法所需的计算机资源,包括时间复杂度(T(n),计算所用的时间)和空间复杂度(S(n),计算所用的内存空间),n是输入量的规模。
问题的复杂性与算法复杂性区别:问题复杂性是固定的,涉及NP完全性理论;算法复杂性依据算法不同而不同,一个问题可以有多种算法。
2. 复杂度表示方式:
O(n)渐近复杂度上界 Ω(n)渐近复杂度下界
o(n)非紧上界 ω(n)非紧下界
Θ(n)/θ(n)紧渐近界(确界/紧渐近:即上界与下界紧夹住中间范围,使得得到的复杂性分析结果较为精确。)
3.算法性质
(1)传递性:
f(n)= Q(g(n)), g(n)= Q(h(n)) T f(n)= Q(h(n))
f(n)=O(g(n)), g(n)=O(h(n)) T f(n)=O(h(n))
f(n)= W(g(n)), g(n)= W(h(n)) T f(n)= W(h(n))
f(n)=o(g(n)), g(n)=o(h(n)) T f(n)=o(h(n))
f(n)= w(g(n)), g(n)= w (h(n)) T f(n)= w (h(n))
(2)反身性:
f(n)= Q(f(n)) f(n)=O(f(n)) f(n)= W(f(n))
(3)对称性:
f(n)= Q(g(n)) ? g(n)= Q (f(n))
(4)互对称性:
f(n)= O(g(n)) ? g(n)= W (f(n)) f(n)=o(g(n)) ? g(n)= w (f(n))
(5)算术运算:
O(f(n))+O(g(n)) = O(max{f(n),g(n)})
O(f(n))+O(g(n)) = O(f(n)+g(n))
O(f(n))*O(g(n)) = O(f(n)*g(n))
O(cf(n)) = O(f(n))
g(n)= O(f(n)) T O(f(n))+O(g(n)) = O(f(n))
4. 复杂度排序:
O(1)O(C)O(loglogn)O(logn)O()O()O(n)O(nlogn) O(n2)O(n3)O(2n)O(3n)O(n!)O()
常用排序算法的复杂度:
线性检索算法(O(n))、二叉检索算法(O(logn))、堆排序(复杂度最优排序O(nlogn))、改进的冒泡算法(O(n2))、
f(n) O(n) Ω(n) θ(n) f(n)=c O(1) Ω(1) θ(1) f(n)= an+b O(n) Ω(n) θ(n) f(n)=an2+bn+c O(n2) Ω(n2) θ(n2) f(n)=a2n+bn2 O(2n) Ω(2n) θ(2n) f(n)=log n2 =2logn O(logn) Ω(logn) θ(logn) f(n)=log1+log2+…+logn O(nlogn) Ω(nlogn) θ(nlogn)
递归和分治
1. 知识点
递归:直接或间接调用自身。递归算法往往复杂度较高,但程序简单容易理解。
分治策略:将一个规模为n的问题分解为k个规模较小的子问题,子问题相互独立并且与原问题相同可以递归地解出,然后再合并为原问题的解。即把大问题分为小问题来解。
递归与分治策略常常一起使用,贯穿于许多经典算法之中。(我的理解:动态规划、贪心法、回溯法及分支限界法等其实都是分治思想,书上的“分治法”的案例是那些不具备动态规划等算法的前提条件的一些案例,但又可以用分治思想特殊处理。动态规划等算法,终归也是可以用递归来写的。)
可以通过一些方法将递归算法拆解为非递归算法(解递归):生成函数、特征方程、人工栈、递推、换名法等。
2. 解递归的过程(按pdf的例子)
生成函数法
递归函数(汉诺塔问题):h(n)=2h(n-1)+1,h(1)=1
解:构造生成函数:G(x)=h(1)x+h(2)x2+h(3)x3+……
则G(x)-2xG(x)=h(1)x+(h(2)-2h(1))x2+(h(3)-2h(2))x3+…… //这步是数学技巧,按照h(n)-2h(n-1)=1的特点变换
则(1-2x)G(x)=x+x2+x3+……=x(1+x+x2+x3+……) //由h(n)-2h(n-1)=1
则(1-2x)G(x)=x/(1-x) TG(x)=x/((1-2x)(1-x)) //由生成函数z变换的性质1+x+x2+x3+……=1/(1-x)
您可能关注的文档
- [第四章栖息地选择.ppt
- l职称英语考试备考:介词使用方法.doc
- I全名词解释以及大题.doc
- I全员人口个案管理信息系统使用手册.doc
- I全员公关从做好内部营销开始.doc
- I全员培训——教师专业发展单选题.doc
- l职称计算机试题文字版.doc
- I国内外生物质能概况.doc
- I全员培训——教师专业发展多选题.doc
- l职能工作分析方法FJA1.doc
- 2025年安徽铜陵中考物理试题及答案.doc
- Unit 6 My clothes, my style 单元复习-七年级英语上册(译林版2024).pptx
- 选必1第七课 经济全球化与中国-高考政治一轮复习课件(新高考通用).pptx
- 6.3 线段的长短比较(课件)-七年级数学上册(浙教版2024).pptx
- 礼仪培训教学课件.ppt
- 4.4 角 (第2课时 角的度量)七年级数学上册(沪科版2024).pptx
- Unit 5 A healthy lifestyle 单元复习-七年级英语上册单元综合(译林版2024).pptx
- 第六课 珍惜婚姻关系-高考政治一轮复习课件(新高考通用).pptx
- 2025年安徽黄山中考语文试题及答案.doc
- 5.3一元一次方程的应用第2课时(课件)七年级数学上册(北师大版2024).pptx
文档评论(0)