第1章算法导论详解优秀PPT.ppt
《第1章算法导论详解优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第1章算法导论详解优秀PPT.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法算法设计设计与分析与分析 Algorithm Design and Analysis 上海理工高校 光电信息与计算机工程学院高丽萍Email:lipinggaousst.edu Office:Room 602(新图书馆楼602房间)Page 2First Example:Identifying Genes in Human DNA (基因识别基因识别)lIdentifying all the 100,000 genes inhuman DNAudetermining the sequences of the3 billion(109)chemical base pairs that mak
2、e up human DNA.(30亿组化学基对组成人类DNA,如何界定这些序列,从而进行基因识别)Computer:3G Hz CPU,3*109B/s,suppose that it executes one billion instructions per second (设该计算机的运行速度为 10亿条基本指令/s)Input size:n=3*109Insertion sort:running time n2t=s/v :Page 33First Example:Identifying Genes in Human DNAlIdentifying all the 100,000 ge
3、nes in human DNAudetermining the sequences of the 3 billion(109)chemical base pairs that make up human DNA.Insertion sort:running time n2Merge sort:running time nlgnl全国居民身份证管理系统:全国居民身份证管理系统:n=1.3109 人人l国家平安防护指纹识别系统:国家平安防护指纹识别系统:n=1.3109 人人Page 44Algorithm Analysis and DesignlStudents:undergraduate,g
4、raduatelCourse property:base,core,.in computinglBibliographylIntroduction to Algorithms(Second Edition),l T.H.Cormen,C.E.Leiserson,R.L.Rivest(2002,Turing Award),l The MIT PresslThe Art of Computer Programming,Donald E,Knuthl 1974,Turing Awardl算法设计与分析,吕国英编著,清华高校出版社,2005年。l算法设计与分析,王晓东编著,清华高校出版社l.“计算机算
5、法的圣经”“计算机程序设计理论的荷马史诗”网友:“没有读过Intro,不能算是一个真正的程序员”Bill Gates:“假如你认为你是一名真正优秀的程序员,请读Knuth的计算机程序设计艺术,假如你能读懂整套书的话,请给我发一份你的简历。”Page 55Algorithm Design and Analysis l学习方式l听课上机实践(作业)考试l15%15%70%l课堂要求l学术很自由,课堂很肃穆:不迟到、早退;不允许接听电话、大声闲聊l考核形式l出勤率:about 15%l大作业(算法实现2-3个):about 15%l期末闭卷考试:about 70%l课程支配l课堂讲解:基本理论讲解,
6、基本方法的介绍分析l上机实践:基本习题和经典习题的上机实践Page 66主要内容介绍主要内容介绍第1章 算法引论第2章 算法基本设计技巧第3章 分治策略第4章 动态规划第5章 贪心算法第6章 回溯法第7章 分支限界法Page 77第第1 1章章 算法引论算法引论1.1算法与程序1.2表达算法的抽象机制1.3描述算法1.4算法困难性分析本章主要学问点:Page 881.1算法与程序算法与程序输 入:有零个或多个外部量作为算法的输入。输 出:算法产生至少一个量作为输出。确定性:组成算法的每条指令清晰、无歧义。有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。是算法用某种程序设计语言的
7、具体实现。程序可以不满足算法的性质(4)即有限性。是满足下述性质的指令序列。算法:程序:Page 991.从机器语言到高级语言的抽象1.2表达算法的抽象机制表达算法的抽象机制高级程序设计语言的主要好处是:(4)把繁杂琐碎的事务交给编译程序,所以自动化程度高,开发周期短,程序员可以集中时间和精力从事更重要的创建性劳动,提高程序质量。(1)高级语言更接近算法语言,易学、易驾驭,一般工程技术人员只需 要几周时间的培训就可以胜任程序员的工作;(2)高级语言为程序员供应了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,牢靠性高;(3)高级语言不依靠于机器语言,与具体的计算机硬件关系不
8、大,因而所写出来的程序可植性好、重用率高;Page 10102.抽象数据类型1.2表达算法的抽象机制表达算法的抽象机制 抽象数据类型是算法的一个数据模型连同定义在该模型上并作为算法构件的一组运算。抽象数据类型带给算法设计的好处有:(1)算法顶层设计与底层实现分别;(2)算法设计与数据结构设计隔开,允许数据结构自由选择;(3)数据模型和该模型上的运算统一在ADT中,便于空间和时间耗费的折衷;(4)用抽象数据类型表述的算法具有很好的可维护性;(5)算法自然呈现模块化;(6)为自顶向下逐步求精和模块化供应有效途径和工具;(7)算法结构清晰,层次分明,便于算法正确性的证明和困难性的分析。Page 11
9、11在本书中,接受Java语言描述算法。1.Java程序结构 1.3描述算法描述算法以下,对JavaJava语言的若干重要特性作简要概述。(1)Java程序的两种类型:应用程序和applet区分:应用程序的主方法为main,其可在吩咐行中用吩咐语句 java 应用程序名 来执行;applet的主方法为init,其必需嵌入HTML文件,由Web阅读器或applet阅读器来执行。(2)包:java程序和类可以包(packages)的形式组织管理。(3)import语句:在java程序中可用import语句加载所需的包。例如,import java.io.*;语句加载java.io包。Page 12
10、121.3描述算法描述算法2.2.JavaJava数据类型数据类型数据类型 基本数据类型:详见下页表1-1 非基本数据类型:如 Byte,Integer,Boolean,String等。Java对两种数据类型的不同处理方式:对基本数据类型:在声明一个具有基本数据类型的变量时,自动建立该数据类型的对象(或称实例)。如:int k;对非基本数据类型:语句 String s;并不建立具有数据类型String的对象,而是建立一个类型String的引用对象,数据类型为String的对象可用下面的new语句建立。s=new StringString(“Welcome”);StringString s=ne
11、w StringString(“Welcome”);Page 13131.3描述算法描述算法表格表格1-1 1-1 JavaJava基本数据类型基本数据类型类型缺省值分配空间(bits)取值范围booleanfalse1true,falsebyte08-128,127charu000016u0000,uFFFFdouble0.0644.9*10-324 1.8*10308float0.0321.4*10-45 3.4*1038int032-2147483648,2147483647long0649.2*1017short016-32768,32767Page 14141.3描述算法描述算法3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 导论 详解 优秀 PPT
限制150内