- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国地质大学
研究生课程论文封面
课 程 名 称 算法分析与设计
教师姓名
研究生姓名
研究生学号
研究生专业 计算机技术
所在院系 计算机学院
类别 : B.硕士
日期: 2014 年 1 月 8 日
专业资料
评 语
对课程论文的评语 :
平时成绩: 课程论文成绩:
总 成 绩: 评阅人签名:
注: 1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
专业资料
第一章 算法导引
1.1 算法
算法:用计算机求解问题的步骤、规则
内存空间—— 初始状态————— 终止状态
有限状态机
算法的五个特性:
输出:一个算法产生一个或多个输出
从内存—— 认识状态
输入:一个算法有 0 个输入或多个输入
input a , b
无二义性: 算法的每一种运算必须要有确切的定义, 即每一种运算应该执行何种动作必
须是相当清楚的、无二义性的(人和计算机、智能、确定的、机器;人机象棋:搜索)。
能行性:
1)人能做,机器没法做:能够形式化,没有办法写出算法
2)股票预测、彩票:模型
有限性:可计算问题、有限的、可忍耐
算法设计:自动化、自动程序设计、公式发现、公式挖掘、知识发现算法验证:设计—表示(语言)—确认—分析—测试程序
1.2 算法分析
数学模型:
1.串行算法,冯诺依曼机
2.均匀存贮,存贮空间足够大
3.基本运算时间确定
基本概念:
1.问题规模:与参数有关
2.频率计数
不分析算法具体执行时间,分析问题复杂性:问题规模增大时的规律根据复杂性,将算法分为两类:
1.多项式时间算法 P: C ,㏒ n , n ,n ㏒ n , n 2(理论上可行,实际上也可行)
2.指数时间算法 NP:2 n , n !, n n (理论上可行,实际上不可行)
O(l)O( ㏒ n) O(n) O(n ㏒ n) O(n 2) O(n 3 )
O(2 n ) O(n!) O(n n )
解决方法:降低算法设计复杂度
分析算法时间与问题规模:
确定 f(n)=O(g(n)) 上界和 f(n)= Ω(g(n)) 下界
1.3 小结
老师首先带领我们回顾了本科阶段的算法基础相关知识, 对于没有系统学习过算法知识的我来说, 更是一种知识入门, 使我对这门课程有一些初步的了解。 然后在对算法进行分析时,不分析算法具体的执行时间,而是分析问题的复杂性(问题规模增大时的规律)。根据
算法的特点可以将要求解的问题分为两类: 离散型和连续型。 离散型问题需要讨论问题的规
专业资料
模,如果是多项式时间复杂度则称为 P 问题;如果是指数时间复杂度则称为 NP 问题。对于
连续型问题,需要讨论算法的收敛性。
第二章 分治法
2.1 一般方法
在求解问题时, 为了将问题简化, 将实际问题转变为数学问题, 将数学问题转变为代数问题,将代数问题转变为解方程问题,将解方程问题转变为解线性方程组问题。
求解问题的技术:
1.
化难为易的校正技术:例如求
f(x)=a-x 2 =0 ;
2.
化粗为精的松弛技术:直接法,间接法,例如求圆的面积(割圆法)
3.
化大为小的缩减技术: f(n)=n*f(n-1) , f(1)=1
问题性质不变
分治法的思想: 将整个问题分为若干个小问题分而治之, 问题的性质不变。 它的求解可
用一个递归过程来表示。
2.2 二分检索
已知一个按非降次序排列的元素表 a 1 ,a 2, ,a n ,要求判定某给定元素 x 是否在该表中
出现。问题规模 O( ㏒ n)
2.3 归并分类(排序)
Procedure mergesort(low,high)
if lowhigh
then mid |(low+high)/2 」
call mergesort(low,mid)
call
mergesort(mid+1,high)
call
mergesort(low,mid,high)
end if
问题规模 O(n ㏒ n)
2.4
快速分类
反复对产生的文件进行划分
2.5
斯特拉森矩阵乘法
Am* l Bl* n
Cm* n 问题规模 O(n 3 )
2.6
小结
分治法是一种用空间换时间的技术,
通过将大规模的问题划分为小规模问题进行求解来
降低求解难度, 采用分治技术, 问题首先必须能够分解, 而且分解后, 问题的性质并没有发
生变化。 采用分治技术的目的只是并行算法设计, 降低算法时间复杂度。 在本章老师主要讲
解了分治法的基本递归求解,二分检索、 归并分类、 快速分类、 斯特拉森矩阵乘法以及它们
的时间复杂度的求解。
第三章 贪心法
3.1 一般方法
概念:有 n 个输入,问题的解是这 n 个输入的一个子集,子集满足一组条件(约束条件),子集
文档评论(0)