- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法导论》复习大纲资料.doc
《算法设计与分析》复习提纲 2014.7.5
1 引言(ch1)
什么是算法及其特征
算法(Algorithm)是通过一个有限的指令序列集合对特定问题进行求解的一种计算执行描述。
算法特征:
(1)输入:一个算法具有零个或多个取自指定集合的输入值;
(2)输出:对每一次输入,算法具有一个或多个与输入值相联系的输出值;
(3)确定性:算法的每一个指令步骤都是明确的;
(4)有限性:对每一次输入,算法都必须在有限步骤(即有限时间)内结束;
(5)正确性:对每一次输入,算法应产生出正确的输出值;
(6)通用性:算法的执行过程可用于所有同类求解问题,而不仅适用于特殊输入。
2.问题实例和问题规模
问题实例是指需要计算同一个结果的问题的所有输入。
问题规模是指输入实例的大小,而输入实例是指问题的具体计算例子
2 算法初步(ch2)
插入排序算法
1)算法步骤:
从左到右扫描数据A,扫描到一个元素,将A[j]与其左边的元素从右到左依次比较,若比之小,则将其之前元素后移,插入A【j】,直至A【j】比他前面的元素大,扫描A中的下一个元素
2)伪代码:
InsertSort(A)
{
for j=2 to A.length //第一层循环
{
Key=A[j]
i=j-1
While i0 and a[i]key //第二层循环
{
A[i+1]=A[i]
}
i=i-1
A[i+1]=key
}
}
2.算法复杂性及其度量
(1)时间复杂性和空间复杂性;
(2)最坏、最好和平均情形复杂性;
顺序情况下B(n)=O(n)、倒序情况下W(n)=O(n2)、A(n)=O(n2)W(n)
空间复杂性:需要常数个额外的临时空间存储临时数据
插入排序的最坏、最好和平均时间
最坏O(n2)、最好O(n)和平均时间O(n2),空间复杂度是O(1),稳定排序
归并排序算法及其时间复杂性-时间Θ(n log n))
1)算法步骤
分解:分解待排序的n个元素的序列为各具n/2个元素的两个子序列
解决:适用归并排序递归的排序2个子序列
合并:从左到有遍历2个子序列,比较最前面的元素,将较小的元素移出子序列 合并到上级序列的末尾,循环进行上2步,直接所有元素都被合并到上级序列,公进行r-p+1次;
2)伪代码:
MERGE-SORT(A,p,r)
{
if pr
q=向下取整(p+r)/2
MERGE-SORT(A,p,q);
MERGE-SORT(A,q+1,r)
MERGE(A,p,q,r)
}
MERGE(A,p,q,r)
{
N1=q-p+1
N2=r-q
将A拆成长度分别为N1、n2的2个子数组L,R
L,R的末尾元素的后一个元素取值无穷大,作为哨兵;
i=1,j=1
for k=p to r
if L[i]=R[j]
A[k]=L[i]
i=i+1
else
A[k]=R[j]
j=j+1
}
3函数增长率(ch3)
渐近记号O、Ω、θ的定义及其使用
O
渐进上界:0=f(n)=C(g(n))
当n-∞, f(n)的阶小与g(n)的阶
2)Ω
渐进下界:0=C(g(n)) =f(n)
当n-∞, f(n)的阶大与g(n)的阶
3)Θ
渐紧界:0=C1(g(n)) =f(n) =C2(g(n))
当n-∞, f(n)的阶与g(n)的阶相等
标准复杂性函数及其大小关系
(1) 多项式时间阶的大小
O(1) O(log n) O(n) O(n*log n) O(n2) O(n3)
(2) 指数时间阶的大小
O(2n) O(n!) O(nn)
和式界的证明方法
1)数学归纳法
猜测解-证明
2)对象限界
最大最小项限界;几何级数限界;
3)和式分解
简单的一分为二;更复杂的划分;积分近似;
4)Knuth求和:
使用数学归纳法;使用摄动法;使用递归;使用积分;使用二重求和;使用有限演算;使用母函数。
4 递归关系式(ch4)
1.替换法
(1)猜测解(数学归纳法证明;
T(n)=2T(?n/2?)+n
猜:T(n)= O(nlogn)
证: 2T(?n/2?)+n=Cnlogn 带入计算
(2)变量变换法;
T(n)=2T(?n1/2?)+log n
令m= logn,则,n=2m
T(2m)=2T(?2m -1/2?)+m ,
令S(m)=T(2m)
则:S(m)=2S?m/2?+m类似T(n)=2T(?n/2?)+n
=O(m log m)
=O(logn log log n)
2.迭代法
(1)展开法;
T(1)=O(1)
T(n)=3T(?n/4?)+n=n+3?n/4?+32?n/42?+…+3KT(n/4K)
总有K,使得1=n/4K=2,即K=log4 n
(2)递归树法;
T(n)=T(n/3
原创力文档


文档评论(0)