




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、授课内容,数据结构与算法基础 算法的基本概念 数据结构基础知识 ( 线性表, 栈和队列, 树与二叉树, 查找与排序 ) 数据库及其应用基础 数据库的基本知识 ( 基本概念, 数据模型, 关系代数 ) Access的使用 SQL语言 VBA程序设计 软件工程基础 软件工程基本知识 结构化分析方法与结构化设计方法 软件测试与程序调试,第1章 算法,1.1 算法的基本概念 1.2 算法复杂度及算法的描述方式,1.1 算法的基本概念,算法是指解题方案的准确而完整的描述。 对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内,运行有限长的时间而得到正确的结果,则称这个问题是算法可解的。,1.1.
2、1 算法的基本特征 可行性: 算法描述的每个步骤必须能够实现,且能达到预期的目的; 确定性: 算法中的每一个步骤,必须经过明确的定义,对于相同的输入只能得出相同的输出; 有穷性: 算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止; 输入: 具有零个或多个输入。它们是算法开始前的初始量; 输出: 至少产生一个输出,是与输入有某种关系的量,是算法的执行结果。,1.1.2 算法的基本要素,(1) 算法中对数据对象的运算和操作 算术运算:加、减、乘、除 逻辑运算:“与”、“或”、“非” 关系运算:“大于”、“小于”、“等于”、“不等于” 数据传输:赋值、输入、输出等操作,算法的控制结
3、构 是算法的基本框架,不仅决定算法中各操作的执行顺序,也直接反映算法的设计是否符合结构化原则。 一个算法一般使用顺序、选择、循环三种基本控制 结构组合而成。,顺序结构举例,已知三个数a、b、c,设计一算法,求它们的和。 算法分析:第一步: 输入三个数a,b,c;第二步: 计算和S abc;第三步: 输出S的值,结束。,顺序结构是由若干个依次执行的操作步骤组成。是任何算法都离不开的基本主体结构。,条件结构举例,设计算法,求给定的方程ax2bxc0的根。 第一步: 输入二次项、一次项系数和常数项a、b、c。 第二步: 计算判别式的值pb24ac。 第三步: 判断:如果p0,则x1,x2; 否则,x
4、1,x2。 第四步: 输出方程的两个根x1、x2,结束。,条件结构是以条件的判断为起始点, 根据条件是否成立来决定执行哪一个处理步骤。,循环结构举例,循环结构指从某处开始有规律地反复执行某一处理步骤(称为循环体)。循环体的执行次数由一个控制循环条件决定,满足条件反复做,不满足则停止。,设计算法,求n个学生某门课程的平均成绩。 第一步: 输入学生总数n; 置i为1, 成绩总合sum为 0; 第二步: 输入第i个学生的分数 score; 第三步: sum sum + score;i i+1; 第四步: 当 i小于等于n 时,返至第二步; 第五步: average sum / n, 输出averag
5、e,结束。,1.2.1 算法的描述方式 (1) 程序设计语言算法 可直接在计算机上运行,使给定问题在有限时间内求解。 (2) 伪语言算法 不能直接在计算机上运行。伪语言介于程序设计语言和自然语言之间,它忽略程序设计语言中一些严格的语法规则和细节描述。突出算法设计的主要思想,而不是语法细节。 (3) 非形式算法 采用自然语言,同时还可使用程序设计语言或伪程序设计语言(如,流程控制语句while、for、if等)描述。,1.2 算法的描述方式及算法复杂度,除采用语言描述外,实际上还有一种图形 描述方法,如流程图、N-S图等。 不论算法采用什么方法描述,它最终都要 转换为程序才能在计算机上运行。 算
6、法程序 (程序要受到运行环境的限制, 需考虑许多与方法和分析无关的细节问题),1.2.2 算法复杂度 (P.2) (1) 算法的时间复杂度 算法所求解问题规模n的函数。记为T(n) 一个算法的时间复杂度T(n)是指执行算法所需要的计算工作量。 算法的工作量一般用算法执行的基本运算次数度量,即问题规模。 (2) 算法的空间复杂度 执行这个算法所需要的内存空间。,一条语句在算法中被重复执行的次数,称 为该语句的频度。 T(n)= 每一条语句的频度之和 当问题规模n趋向无穷大,(即n ) T(n)/f(n) a时,称时间复杂度T(n)的数量级 为O(f(n) 。 其中,a是不等于零的常数,f(n)
7、表示与问题 规模n 有关的频度最大的语句的频度 时间复杂度T(n)的数量级称为算法的渐进时间 复杂度。O(f(n),算法的渐进时间复杂度,通常使用算法的渐近时间复杂度评价一个算法的时间性能。即, T(n)= O(f(n) 常见的渐近时间复杂度包括(递增排列): 常数阶o(1)、 对数阶 、 线性阶o(n)、 线性对数阶 、平方阶 、 立方阶 、k次方阶 、指数阶 时间复杂度为指数阶 的算法效率极低,当n值稍大时就无法应用。,例1: for( i=0; in; i+ ) /* 执行n+1次 */ for( j=0; jn; j+ ) /* 执行n(n+1)次 */ cij=0; /* 执行n2
8、次 */ for( k=0; kn; k+ ) /* 执行n2(n+1)次 */ cij=cij+aik*bkj; /* 执行n3次 */ ,f(n)=n3 时间复杂度为 O(n3), 记为: T(n)=O(n3),时间复杂度在具体分析时,可做如下处理: 若语句很少执行,且与规模n无关,则可 忽略不计; 若所有语句(即使有上千条语句)都与规 模n无关,时间复杂度的量级也只是O(1), 其执行时间不过是一个较大的常数。 一般只考虑与程序规模n有关的频度最大 的语句。(如,循环语句的循环体,多重 循环的内循环等。),例2: (1)a=b; 时间复杂度为O(1) (2)for(i=0;in;i+) a=b; 时间复杂度为O(n) (3)for(int i=0;in;i+) for(int j=0;jn;j+) a=b; 时间复杂度为O(n2),例3: 说明下列程序段的时间复杂度 (1) 交换a和b的内容 t=a; a=b; b=t;,三条语句的执行次数均为1, 与规模n无关, 故可知:时间复杂度为O(1)。,执行次数最多的语句是sum+=i,但它执行的次数不是n次,若
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 5 what were you doing when the rainstorm came Section B 3a~3b Self check教学设计 -2024-2025学年人教版英语八年级下册
- 2024-2025学年高中生物上学期《细胞呼吸》教学设计
- Module 10 A holiday journey Unit 3 Language in use 教学设计-2023-2024学年外研版英语七年级下册
- Unit 2 Travelling -study skills 教学设计 2023-2024学年牛津译林版英语八年级下册
- 7呼风唤雨的世纪(教学设计)-2024-2025学年四年级上册语文统编版
- 14 母鸡 (教学设计)2023-2024学年统编版语文四年级下册
- 三年级信息技术上册 第3课 打开窗口天地宽教学设计 粤教版
- 《京调》(教学设计)-2023-2024学年湘艺版(2012)音乐六年级下册
- 牙科吸痰护理操作规范
- 七年级生物上册 3.2.3 开花和结果教学设计2 (新版)新人教版
- 古代汉语-形考任务1-3-国开-参考资料
- 盐源县县属国有企业招聘工作人员真题2024
- 工业废水处理技术作业指导书
- 2025年中国航天日知识竞赛考试题库300题(含答案)
- 体检中心质量控制指南
- 2024年四年级英语下册 Unit 6 What's Anne doing第2课时教学实录 湘少版
- T-CECC 029.1-2024 数据分类分级指南 第1部分:医疗健康
- 严守八项规定发言稿
- 2025年湖南省低空经济发展集团有限公司招聘11人笔试参考题库附带答案详解
- 全国公开课一等奖四年级上册数学人教版《角的度量》课件
- 生物医药产业发展蓝皮书
评论
0/150
提交评论