最新2019-算法分析与设计-算法设计与分析(一)-PPT课件.pptVIP

最新2019-算法分析与设计-算法设计与分析(一)-PPT课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

算法设计与分析

ComputerAlgorithmDesignAnalysis

2019.4;写在讲课前;算法不陌生;思考:既然每种方法都可以实现排序之目的,何必费心研究这么多排序算法?

其一:“瞎想”,就像玩智力游戏,人们乐衷于寻找不同的方法解决各种各样的问题。

其二:研究的需要,算法和算法间是有区别的,我们有必要去研究,去分析。

性质不同:稳定、不稳定

性能不同:速度、空间

适用场合不同

其三,应用的需求,问题有千百万种,没有万能的算法适合所有的应用。需要我们找出算法的设计规律,并设计出解决问题的新算法

怎么选择:根据性能、结合需求、综合选择

如何了解每种算法的性能?算法的分析

;二、算法分析(AlgorithmAnalysis)

目的是了解算法的性能:

算法速度:快还是慢?如何衡量?怎么比较?

空间使用量:大还是小?如何衡量?怎么比较?

其它方面的性质等。

;实例分析:

排序算法的理论分析:O(n2)、O(nlogn)

编程序测试

1.冒泡排序真的很慢吗?

数据集元素个数:10、20、1000、10000…

2.快速和归并排序都是O(nlogn)的时间复杂度,

到底谁更快一点呢?原因是什么?

3.冒泡排序会不会比快速排序快?

来自于实测的结论:可能。;三、为什么要学习算法

1.编程序的需要

任何程序都需要算法。thecoreofcomputerscience

程序=数据结构+算法

(N.Wirth,美国著名计算机科学家,图灵奖获得者)

2.改造世界的需要

世界上还有很多的问题等待你解决,有无数的程序等待你去编。

3.国家综合实力的体现(大)

从软实力的角度,算法是国家科技生产力的核心,是国家综合实力的体现。;四、头疼的事:算法太多了,学不过来

是的,都学过来是不可能的。精通某一方面已经很了不起。

学习算法设计与分析的策略、技术和方法,把握解决问题的规律,为设计更复杂、更有效的算法奠定基础。

需要同学们不断学习,主动思考,努力创新。;五、算法的学习过程:痛苦并快乐着

1.枯燥的过程

繁烦:学习一个算法如同做一道数学题,多了呢?

ACMICPC的训练过程:乐于其中

2.智慧的积累

方法的掌握、技术的升华

3.理论的贡献

算法的成就或在于理论的贡献,而不仅仅是技术的提高。

如何成就好算法:好思想+好技术;六、好算法

从理论的角度说,好算法应该有巧妙的设计思想,较好的性能(时间复杂度(高速)和空间复杂度(低耗)),但好的算法还要依靠好的技术实现,需要理论与技术的结合才能最终实现好的算法。

从应用的角度说,能有效地解决问题的算法都是好算法——不管黑猫白猫,抓住老鼠就是好猫;不管A算法、B算法,能解决问题就是好算法(实用了点)。;概述;本课程需要的基础

数据结构

程序设计语言(C/C++):结构化设计

一定的数学基础

操作系统、编译

;授课形式:

课堂教学:(√)

课堂讨论:专题、解题报告

上机实践:需要提交实验报告;主要参考书

计算机算法基础,余祥宣等编著,华中科技大学出版社

Introductiontoalgorithms,ThomasH.Cormen,etc.,thirdedition,TheMITPress.

AlgorithmDesign,JonKleinberg,EvaTardosetc.CornellUniversity

算法设计与分析,王晓东,清华大学出版社;其它参考书

TheArtofComputerProgramming,DonaldE.Knuth.Volume1-3,SecondEdition.

DataStructures,Algorithms,andApplicationsinC++(Part3)SartajSahni,ChinaMachinePress

etc.;一、算法基础;1.1算法的定义及特性;对算法概念的理解

算法由运算组成

算术运算、逻辑运算、关系运算、赋值运算、过程调用

算法有其特殊性

解决不同问题的算法是不相同的,有没有一个万能的算法?

算法是有穷的计算过程

静态上:规则/运算/语句的数量有穷

动态上:计算过程/计算时间有限

;我们已经接触过的算法:

分类(排序)算法:将已知的n个元素按照关键值大小的非增/非降顺序重新排列。

如:冒泡排序、插入排序、归并排序

查找算法:在已知的元素集合中找出满足要求的一个

文档评论(0)

朝兵 + 关注
实名认证
文档贡献者

原版文件原创

1亿VIP精品文档

相关文档