第1章计算机算法基础(使用).pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章计算机算法基础(使用)

1 计算机算法基础 计算机系 刘亮 241306755@ 2 教材 计算机算法基础(第三版)余祥宣等 华中科技大学出版社 参考书: 1.计算机算法设计与分析(第4版):王晓东,电子工业出版社 2.算法导论 MIT PRESS(美),潘金贵、顾铁成、李成法等译 机械工业出版社 3.算法分析与设计 :(美)古德里奇,(美)塔玛西亚,霍红卫译 人民邮电出版社 课时安排:40 考试形式:待定 3 序 计算机算法是计算机科学和计算机应用的核心 数据结构+算法 = 程序 算法(algorithm)是一个在有限时间内逐步执行某种任务的过程 数据结构(data structure)是一种系统组织和访问数据的方法 算法:计算机软件的灵魂 4 问题求解(Problem Solving) 5 章节安排 第一章 导引与基本数据结构 √ 第二章 分治法 √ 第三章 贪心方法 √ 第四章 动态规划 √ 第五章 检索与周游 ⊙ 第六章 回溯法 √ 第七章 分枝-限界 ⊙ 第八章 NP-问题 … 并行,周游、NP算法等在研究生阶段学习。 算法研讨环节 6 第一章 导引与基本数据结构 1.1 算法的定义及特性 1. 什么是算法? 算法如数字、计算一样,是一个基本概念。 算法是解一类确定问题的任意一种特殊的方法。 在计算机科学中,算法是使用计算机解一类问题的精确、有效方法的代名词: 算法是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。 7 2.算法的五个重要特性 确定性、能行性、输入、输出、有穷性 1)确定性:算法的每种运算必须要有确切的定义,不能有二义性。 例:不符合确定性的运算 5/0 将6或7与x相加 未赋值变量参与运算 8 2)能行性 算法中有待实现的运算都是基本的运算,原理上每种运算都能由人用纸和笔在有限的时间内完成。 例:整数的算术运算是“能行”的 实数(无理数)的算术运算是“不能行”的 9 3)输入 每个算法有0个或多个输入。这些输入是在算法开始之前给出的量,取自于特定的对象集合——定义域(或值域) 4)输出 一个算法产生一个或多个输出,这些输出是同输入有某种特定关系的量。 10 5)有穷性 一个算法总是在执行了有穷步的运算之后终止。 计算过程:只满足确定性、能行性、输入、输出四个特性但不一定能终止的一组规则。 准确理解算法和计算过程的区别: 不能终止的计算过程:操作系统。 算法是“可以终止的计算过程”。 算法的时效性:只能把在相当有穷步内终止的算法投入到计算机上运行。 11 4. 我们的主要任务 算法学习将涉及5个方面的内容: 1)设计算法:创造性的活动(掌握策略) 2)表示算法:思想的表示形式(用SPAKS语言) 3)确认算法:证明算法的正确性 程序的证明(程序的形式化证明技术) 4)分析算法:算法时空特性分析 5)测试程序:“调试只能指出有错误,而不能指出它们 不存在错误” 本课程集中于学习算法的设计与分析。通过学习,掌握计算机算法设计和分析基本策略与方法,为设计更复杂、更有效的算法奠定基础。 12 5. 课程关系 数据结构 程序设计语言:结构化设计 数学基础 非数值计算领域的基本知识 13 1.2 分析算法 1. 分析算法的目的 在于:通过对算法的分析,在把算法变成程序实际运行前,就知道为完成一项任务所设计的算法的好坏,从而运行好的算法,改进差的算法,避免无益的人力和物力浪费。 算法分析是计算机领域的古老而前沿的课题。 进行算法分析的基本技术:抽象 冒泡法排序: void bubbleSort(int arr[],int n) { int i,j,t; for(i=1;i=n-1;i++) { for(j=1;j=n-i;j++) { if(arr[j+1]arr[j]) { t

文档评论(0)

cc880559 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档