- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华北电力大学电子和通信工程系
华北电力大学电子与通信工程系 一 算法评价标准 (1) 正确性(Correctness ) 算法应满足具体问题的需求。 (2)可读性(Readability) 算法应该好读。以有利于阅读者对程序的理解。 (3)健状性(Robustness) 算法应具有容错处理。当输入非法数据时,算法应对其作出反应,而不是产年莫名其妙的输出结果。 (4)效率与存储量需求 效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般,这两者与问题的规模有关。 二 控制结构 算法的控制结构,决定了各操作的执行次序。用流程图 可以形象地表示出算法的控制结构 任何复杂的算法都可以用顺序、选择、循环三种控制结构组合而成 三 算法的表示 算法设计一般是由粗到细的过程,一般可以使用下面几种类型的工具描述算法: 1.自然语言 自然语言描述算法通俗易懂,但它有着难以克服的缺陷: (1) 易产生歧义性 (2) 语句繁琐冗长,很难清楚地表达算法的逻辑流程 (3) 当今的计算机尚不能处理用自然语言表示的算法 2.专用工具 常用的有流程图、PAD图和N-S图、伪代码等 3.算法描述语言 为了便于转换成某种编程语言,一般采用准程序设计语言作算法描述语言。 四 常用算法 1.枚举法(穷举法) 基本思想是: 先依据题目的部分条件确定答案的大致范围 在此范围内对所有可能的情况逐一验证,直到全部情况验证完 若某个情况使验证符合题目的条件,则为本题的一个答案;若全部情况验证完后均不符合题目的条件,则问题无解 2.迭代法 使一个复杂问题的求解过程转化为相对简单的迭代算式的重复执行过程, 使用迭代法构造算法的基本方法是: 首先确定一个合适的迭代公式,选取一个初始近似值以及解的误差 然后用循环处理实现迭代过程,终止循环过程的条件是前后两次得到的近似值之差的绝对值小于或等于预先给定的误差 并认为最后一次迭代得到的近似值为问题的解。 3.递归法 如果一个过程直接或间接地调用它自身,则称该过程是递归的, 例:求阶乘 Func fac ( n As Integer) If n=1 then fac=1 Else fac=n*fac(n-1) Endif 4.递推法 所谓递推法,它的数学公式也是递归的。只是在实现计算时与递归相反。从给定边界出发逐步迭代到达指定计算参数。例:求阶乘 f(n)=n! =n×(n-1)! =n×f(n-1) 要计算10!,可以从递推初始条件f(0)=1出发,应用递推公式f(n)=n×f(n-1)逐步求出f(1)、f(2)…、f(9)、最后求出f(10)的值 递推操作是提高递归函数执行效率最有效的方法,科技计算中最常见 5.分治法 解一个夏杂的问题时,尽可能地把这个问题分解为较小部分,找出各个的解,然后再把各部分的解组合成整个问题的解,这就是所谓的分治法 6.回溯法 在那些涉及到寻找一组解的问题或者满足某些约束条件的最优解的问题中,有许多可以用回溯法来求解 回溯法的算法: Proc Backtracking ( succ : Boolean) 确定起始状态值走第一步 ;确定下一步还有几种可能 ; 选一可能走下一步,记住可能和本步特征;做完新一步应做的事 While 目标未达到 do 确定下一步有几种可能 While 没有可能and 还有上一步 do 回退上一步; 查有无下一可能 Enddo If 上一步没有了Then return (SUCC=FALSE) EndIf 选一可能走一步,记住可能和本步特征; 做完新一步应做的事 Enddo return (SUCC=TRUE) End Backtracking 时间复杂度(Time Complexity) :基本操作重复执行的次数的阶数 T(n)=o(f(n)) 空间复杂度(Space Complexity) :s(n)=o(f(n)) 定义: 如果存在两个正常数c和n0,对于所有的n≧n0,有 ︱f(n) ︳≦c|g(n) ︳,则记作 f(n)=O(g(n)) 例1:NXN矩阵相乘 for(i=1;i=n;i++) for(j=1;j=n;j++) {c[i][j]=0; for(k=1;k=n;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } 软 件 技 术 基 础
文档评论(0)