Hust-软院-《算法结业报告》

《算法设计分析》结课报告
总览
在本学期的算法课程学习中,主要学习了以下内容:
算法的渐进分析 分治策略 随机化算法
统计算法 排序问题 动态规划 贪心算法
图算法:基本图算法,最小生成树,单源最短路径,所有结点对的最短路径问题,以及最大流
通过对以上内容的学习,让我对大二上的数据结构课程内容有了进一步的理解,同时也对算法设计有了更深的体悟。
内容概述
算法:算法可以看成用于求解良说明的计算问题的工具。一般来说,问题陈述了期望的
输入/输出关系,而算法则描述一个特定的计算过程来实现该输入/输出关系。
算法的渐进分析
当输入规模足够大,使得只有运行时间的增长量级有关时,我们要研究算法的渐进效率,也就是说,我们关心当输入规模无限增加时,在极限中,算法的运行时间如何随着输入规模的变大而增加 。对于算法的渐进分析,我们有以下渐进记号:
Θ:Θ(g(n))={f(n):存在正整数c1,c2和n0,使得对于所有的n≥n0,有0≤c1g(n)≤f(n)≤c2g(n)},这里的Θ(g(n))是一个集合,g(n)是f(n)的一个渐进紧确界。
Ο: Ο(g(n))={f(n):存在正整数c和n0,使得对于所有的n≥n0,有0)≤f(n)≤cg(n)},此时只有一个渐进上界g(n),我们用这个记号来描述上界,那么可以用它来描述最差运行时间,关于算法在每个输入上的运行时间,我们也有一个界,例如,运行时间为O(n²),意思是存在一个O(n²)的函数f(n),对于n的所有值,不管选择什么特定规模的规模为n的输入,其运行时间的上界都是f(n),也就是说最坏情况运行时间为f(n)。
Ω:与O相对,这个符号提供了渐进下界,Ω(g(n))={f(n):存在正整数c和n0,使得对于所有的n≥n0,有0)≤cg(n)≤f(n)},不管选择什么规模为n的输入,只要n足够大,对那个输入的运行时间至少为g(n)的常量倍
ω:ω(g(n))={f(n):对任意正常量c和n0,使得对于所有的n≥n0,有0)≤cg(n)<f(n)}
ο:由o提供的上界是非渐进紧确的,o(g(n))={f(n):对任意正常量c和n0,使得对于所有的n≥n0,有0)≤f(n)<cg(n)},当n趋于无穷时,f(n)相对于g(n)来说微不足道。

分治策略

在分治策略中,我们递归的求解每一个问题,例如归并排序,在每层递归中用到三个步骤:
分解(Divide):将问题划分为一些子问题,子问题的形式与原问题相同,只是规模更小
解决(Conquer):递归地求解出子问题,如果子问题规模足够小,那么就停止递归,直接求解问题
合并(Combine):将子问题的解组合成原问题的解
当子问题足够大,需要递归求解时,我们称之为递归情况,当子问题足够小时,不再需要递归,则进入了基本情况,有时除了与原问题形式完全一样但是规模更小的子问题外,还需要求解与原问题不完全一样的子问题,将这些子问题的求解看成合并的一部分。
递归式
递归式与分治方法紧密相关,因为使用递归式可以很清晰地描述分治算法的运行时间
例如归并排序的递归式T(n)={█(Θ(1),n=1@2T(n/2)+Θ(n),n>1)┤,可以求解得T(n)= Θ(nlgn)。
求解递归式方法有三种:
*代入法
步骤:猜测解的形式 用数学归纳法求出解的形式,并且证明解是正确的
通常证明递归式较宽松的上界和下界,然后缩小不确定的范围。但是代入法只能证明某一O(x)是不是上界,但是不一定为紧确界。并且当我们用归纳法证明一个上界的时候,是为了证明一个更弱的上界,而我们能用的只有一个同样很弱的上界,因此非常困难。
证明的过程中,如果改变一个变量,可以把递归式变成熟悉的形式,例如,T(n)=2T(√(n))+lgn,令m=lgn,T(2m)=2T(2m/2)+m,令S(m)= 2T(m/2)+m,则S(m)=O(mlgm),T(n)=T(2^m)=S(m)=O(lgnlglgn)
*递归树法
递归式:T(n)=3T(n/4)+Θ(n^2)
递归树:
因为子问题的规模每一步减少为上一步的1/4,那么最终必然会达到边界条件,根结点与规模为1的子问题的距离为log4n,深度为i的每个结点代价为c(i/4)2,深度为i的所有结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值