全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter 1 Introduction1.1 Role of Algorithms in Computer Science(1) 算法是计算机科学基础的重要主题 70年代前,计算机科学基础的主题没有被清楚地认清。 70年代,Knuth出版了The Art of Computer Programming(三 卷), 以各种算法研究为主线,确立了算法为计算机科学基础的 重要主题,1974年获得图灵奖。 70年代后,算法作为计算机科学的核心推动了计算机科学技术的 飞速发展(2) 计算机科学的体系 解决一个计算问题的过程 可计算否能行可计算否算法设计与分析用计算机语言实现算法软件系统 可计算理论: 计算模型 可计算问题/不可计算问题 计算模型的等价性-图灵/Church命题 计算复杂性理论 在给定的计算模型下研究问题的复杂性 上界 下界 平均 固有复杂性 复杂性问题的非类: P=NP? 抽象复杂性研究 算法设计和分析 可计算问题的算法的设计与分析 设计算法的理论、方法和技术 分析算法的理论、方法和技术(3) 算法设计与分析的意义 计算机各领域的核心 计算机工程特别是计算机软件工程的基础1.2 Concepts of Algorithms(1) 算法的定义定义1.2.1 (计算). 可由一个给定计算模型机械地执行的规则或计算步骤序列称为该计算模型的一个计算。*一个计算机程序是一个计算(计算模型是该计算机)*计算可能永远不停止-不是算法。定义1.2.2 (算法). 算法是一个满足下列条件的计算: 有穷性/终止性:有限步内必须停止。/* 好算法/坏算法 */ 确定性:每一步都是严格定义和确定的动作。 /* 要严格算法语言 */ 能行性:每一个动作都能够被精确地机械执行。 输入:有一个满足给定约束条件的输入。 输出:满足给定约束条件的结果。 *直观地说,算法如下图所示:*算法的目的是求解问题。什么是问题?(2) 问题的定义定义1.2.3 (问题). 设Input和Output是两个集合。一个问题是一个关系RInputOutput,Input称为问题R的输入集合,Input的每个元素称为R的一个输入,Output称为问题R的输出或结果集合,Output的每个元素称为R的一个结果。*问题定义了输入和输出的关系。例. SORT问题定义如下: 输入集合Input= | ai是整数 输出集合Output= | bi是整数, b1b2bn 问题SORT=(,)| Input, Output, a1, , an=b1, , bn.定义1.2.4 (问题实例). 问题R的一个实例是的一个二元组。 *一个算法面向一个问题,而不是仅仅求解一个问题的实例。(3) 算法实例Insertim Sort 问题定义 Input= | ai是整数 output= | bi是整数,且b1b2.bn R=(,) Input,output, a1,.,an=b1,.,bn 算法的思想扑克牌游戏 算法描述 Insertion-sort(A) Input: A1,.,n=n个sort数 output: A1,.,n=n个sort数 Method: FOR i=2 To n Do keyAi, ij-1 WHILE i0 AND Aikey Do Ai+1 i; ii-1; Ai+1key; 实例: A1,.,n=5,2,4,6,1,31.3 Analyzing Algorithms(1) 正确性分析 定义1.3.1. 一个算法是正确的,如果它对于每一个输入都最终停止,而且产生正确的输长*不正确:不停止(在某个输入上) 对所有输入都停止,但对某个输入产生不正确的结果*近似算法 对所有输入都停止 产生近似正确的解或产生不多的不正确解*正确性证明 证明算法对所有输入都停止 证明对每个输入都产生正确结果*调试程序程序正确性证明 “程序调试只能证明程序有错误,不能证明程序无错误”(2) 复杂性分析 目的:预测算法对不同输入所需要的资源量是输入大小的函数 复杂性测度:时间,空间, I/O等等 用途:为求解一个问题选择最佳算法 需要的数学基础:离散数学,组合数学,概率论,代数等 需要的数学能力:建立算法复杂性的数学模型 数学模型化简 定义1.3.2(输入的大小) 设Input是问题R的输入集合,R的输入大小是一个函数。F:InputN,N是正整数集合 例: 矩阵问题的输入大小=矩阵的维数 图论问题的输入大小=图的边数/结点数定义1.3.3(时间复杂性)一个算法对特定输入的时间复杂性是该算法对该输入产生结果需要的原子操作或“步”数*时间复杂性是输入大小的函数*我们假设每一步的执行需要常数时间,实际上每步需要的时间量可能不同。 定义1.3.4(空间复杂性) 一个算法对特定输入的空间复杂性是该算法对该输入产生结果所需要的存储空间大小。 定义1.3.5(最坏复杂性)设Input是问题R的输入集合,Complexity(X)是求解R的算法A的复杂性函数,Size(y)是R的输入大小函数,A的最坏复杂性是MaxComplexity(size(y)yInput 定义1.3.5(最好复杂性)MixComplexity(size(y)yInput 定义1.3.6 (平均复杂性)设yInput,y作为算法A的输入出现的概率是py,A的平均复杂性为.1.4 Designing Algorithms(1) 算法设计的方法divide-and-conguer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陕西空天丝路文化运营管理有限责任公司招聘(44人)笔试历年参考题库附带答案详解
- 2025四川省现代种业发展集团华峰汇农农业科技有限公司社会化招聘拟人员笔试历年参考题库附带答案详解
- 临床护理课件中关键信息的提炼
- 2026年幼儿园常见职业教育问题及对策
- 2026年居民区消防安全隐患排查意义
- 如何正确护理脐带
- 分级护理与护理艺术化
- 护理专业职业规划
- 2026年幼儿园教学体系方案设计案例
- 2026年河南省新乡市法检系统书记员招聘笔试备考题库及答案详解
- 书包的变迁史物品演变话题作文(8篇)
- 2022全国电力事故和电力安全事件汇编
- 【特易资讯】2025中国二手车行业出口分析及各国进口政策影响白皮书
- 林场消防知识学习
- 急危重症护理学脑卒中
- 2025年上半年武汉东湖高新区卫生系统事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 玉米产业链规划方案
- 3.3.2 物质组成的定量表示 同步练习
- 私人借款保证书模板
- 化工和危险化学品重大事故隐患考试试题(后附答案)
- vda5测量过程能力的手册
评论
0/150
提交评论