第一章算法综述.pptVIP

  • 3
  • 0
  • 约9.29千字
  • 约 26页
  • 2019-08-29 发布于广东
  • 举报
* * * * * * * * * 对所设计的算法,普遍关心的是算法的执行时间和算法所需要的存储空间。因此,也把算法的复杂性,划分为算法的时间复杂性和算法的空间复杂性。算法的时间复杂性越高,算法的执行时间越长;反之,执行时间越短。算法的空间复杂性越高,算法所需的存储空间越多;反之越少。在算法的复杂性分析中,对时间复杂性的分析考虑得更多。 * * * * * * * * * * * * * 计算机算法设计与分析 郭艺辉 广东金融学院 计算机科学与技术系 办公室:1622 电 Email:校内邮箱 gdufguo@126.com 计算机算法设计与分析 教材:计算机算法设计与分析-王晓东 参考资料: 算法设计与分析 郑宗汉 清华大学出版社 计算机算法基础(第三版) 余祥宣 华中科技大学出版社 算法设计与分析基础(第2版)   作者:(美)Levitin? 译者: 潘彦? 清华大学出版社 主要章节介绍 第1章 算法引论 第2章 递归与分治策略 第3章 动态规划 第4章 贪心算法 第5章 回溯法 第6章 分支限界法 第7章 概率算法 第8章 NP完全性理论 第9章 近似算法 第10章 算法优化策略 计算机算法设计与分析 算法:是指解决问题的一种方法或一个过程。更严格地讲,算法是由若干条指令组成的又穷序列,且满足下述4条性质: 输入:有零个或多个外部量作为算法的输入。 输出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 计算机算法设计与分析 程序: 程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)即有限性。 例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。 百鸡问题   公元前5世纪末,中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? 百鸡问题 算法A的程序代码如下: For x = 0To 100 For y = 0 To 100 For z = 0 To 100 If (x+y+z=100) And (5* x + 3 * y + z/3 = 100) Then List1.AddItem Str(x) + + Str(y) + + Str(z) End If Next z Next y Next x 算法的描述方法 百鸡问题 算法B程序代码如下: For x = 0  To  20 For y = 0 To  33 Z=100-x-y If 5* x +3* y + z/3 = 100 Then List1.AddItem Str(x) + + Str(y) + + Str(z) End If Next y Next x 百鸡问题    运算结果是计算机B先把结果运算出来。为什么会这样呢?    我们来分析一下,算法A需要执行101×101×101约100万次内循环,而算法B只需要执行21×34约714次内循环。 货郎担问题 货郎担问题(Traveling Salesman Problem,简称“TSP”) 中国邮路问题,旅行商问题等,是计算机算法理论历史上的经典问题。在过去几十年中,它成为许多重要算法思想的测试平台,同时也促使一些新的理论领域的产生,比如多面体理论和复杂性理论。 货郎担问题:某售货员要到若干个城市销售货物,已知各城市之间的距离,要求售货员选择出发的城市及旅行路线,使每一个城市仅经过一次,最后回到原出发城市,而总路程最短。 穷举法货郎担问题 穷举法版本的货郎担问题 输入:城市个数n,费用矩阵c[][];输出:旅行路线t[],最小费用min 1. void salesman_problem(int n,float min,int t[],float c[][]) 2. { 3. int p[n], i = 1; 4. float cost;

文档评论(0)

1亿VIP精品文档

相关文档