- 40
- 0
- 约1.19万字
- 约 47页
- 2016-05-13 发布于四川
- 举报
5.程序(Program)与算法不同 程序是算法用某种程序设计语言的具体实现。 只满足前四条特性的一组规则不能称之为算法,只能叫做计算过程—程序。 操作系统就是计算过程的一个典型例子。设计操作系统的目的是为了控制作业的运行,当没有作业时,这一计算过程并不终止,而是处于等待状态,一直等到一个新的作业的进入。 如何设计算法 如何表示算法 用恰当的方式表示算法,表达的方式有多种。 本教案依循教材,并考虑到学生的特点,选择了类C语言和类SPARKS的语言结合的伪代码来表示算法。不论学过C语言还是学过pascal语言的人,都很容易掌握这种描述。 如何确认算法 算法正确性的证明(算法确认algorithm validation) 证明算法对所有可能的合法输入都能算出正确的答案,这一工作称为算法确认。这一领域是当前很多计算机科学工作者集中研究的对象,还处于相当初期的阶段。 在学习本课程中,我们仅对算法的正确性进行一般的非形式化的讨论和通过对算法的程序实现进行测试。 如何分析算法 通过时间和空间复杂度的分析,确定算法的优劣 包括定量地分析算法需要多少计算时间和存储空间。分析算法不仅可以预计算法能否有效地完成任务,而且可以知道在最好、最坏和平均情况下运算时间,对解决同一问题不同算法的优劣作出比较。 算法分析步骤: 首先确定使用那些运算以及执行这些运算所用的时间。(运算包括基本数值运算和一些更基本的任意长序列的运算) 其次是要确定出能反映算法在各种情况下工作的数据集。(即要求我们编造出能产生最好、最坏和有代表性情况的数据配置,通过使用这些数据来运行算法,以更了解算法的性能) 研究算法的复杂性问题。 目标——设计出复杂性尽可能低的算法 准则——多个算法中选择其中复杂性最低者 如何测试程序 测试程序是否会产生错误的结果 作时空分布图 事前分析 求出该算法的一个时间限界函数(一些关于参数的函数) 事前分析只限于每条语句的频率计数(该语句的执行次数,与所用的机器无关,且独立于程序设计语言,可由算法直接确定) 事后测试 收集此算法的实际执行时间和占用空间的统计资料 2.程序的运行时间与下述因素有关: 1).程序的输入量:不同的数据输入量可以影响算法产生最好、最坏和有代表性的平均情况的复杂度。 最好情况运行时间复杂性:指对规模为n的所有输入量,程序运行时间的最小值记为。 最坏情况运行时间复杂性:指对规模为n的所有输入量,程序运行时间的最大值记为。 平均运行时间复杂性:指对规模为n的所有输入量,程序运行时间的平均值。 2).编译得到的目标代码的质量; 3).执行程序的机器指令的性质与速度; 4).构成程序的算法的时间复杂性。 算法的运行时间是 ∑(语句的频率计数×执行语句一次所需的时间) 其中唯一与机器、编译器无关的只是语句的频率计数,所以这里把算法的运行时间取为 ∑(语句的频率计数)。 例: 频率计数例子 考虑语句x?x+y在下面三个程序段中的频率计数 2. 渐近表示法——渐近上界 定义:(大O表示法)设对一切n≥0 的整数有一个非负函数f(n)。如果存在一个整数n0 和一个正常数c,且对于任何n≥ n0 都有|f(n)|≤c|g(n)|,则称“f(n)是g(n)的大O表示”,记为f(n)= O(g(n))。 进一步理解定义 进一步理解定义 3. 大O的数学特性 4.定理: 若A(n)=amnm+am-1nm-1+…+a2n2+a1n+a0是一个m次多项式,则 A(n)=O(nm)。 证明:取n0=1,当n≥n0时,利用A(n)的定义和一个简单不等式,有 |A(n)| ≤ |am|nm+|am-1|nm-1+…+|a2|n2+|a1|n+|a0| ≤ (|am|+|am-1|/n+…+|a1|/nm-1+|a0|/nm)nm ≤ (|am|+|am-1|+…+|a2|+|a1|+|a0|)nm 选取c=(|am|+|am-1|+…+|a2|+|a1|+|a0|),定理即得证。 事实上,将n0取得足够大,可以证明只要是c比|am|大的任意一个常数,此定理都成立。 结论:对多项式函数的复杂性,与多项式的最高阶nm同阶,即 A(n)=O(nm )。 常数因子的影响: T1(n)=1000n; T2(n)=100nlog2 n; T3(n)=10n2; T4(n)=n3; T5(n)=2n; 则当: 2≤n≤9时,A5比A1、A2、A3、A4都好; 10≤
您可能关注的文档
- 《上海铁道》杂志读者人群分析.pdf
- 《通信建设工程概算、预算编制办法》.doc
- 《学习心理学》讲义.doc
- 01第14章第一讲(半导体器件).ppt
- 1.1_概述及运算基础.ppt
- 1.3_微型计算机系统的组成.ppt
- 1_管理活动与管理理论.ppt
- 1_函数与及极限.doc
- 1认识微课程培训.ppt
- 河北邢台市2025-2026学年高二上学期2月期末语文试题(含解析).docx
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- DB37_T 4904-2025 链式切割水泥土连续墙技术规程.docx VIP
- DB37_T 4903-2025 沥青路面防裂封水粘结层技术规范.docx VIP
- DB37_T 4909-2025 城市轨道交通隧道结构渗漏水治理技术规程.docx VIP
- 2026年河南工业和信息化职业学院单招职业技能考试题库及参考答案详解.docx VIP
- DB37_T 4914-2025 电梯按需维护保养管理技术规范.docx VIP
- DB37_T 4915-2025 氧气瓶充装自动控制技术要求.docx VIP
- 最全汉语水平的考试HSK6级历年真题经典版.pdf VIP
- 博朗-欧乐B_OralB 5000__O3762_5_CHIN使用说明书.pdf VIP
- DB37_T 4918.5-2025 政务信息化项目管理 第5部分:项目和系统编码.docx VIP
- 价值链视角下的山西汾酒公司资金管理问题与优化路径探究11000字【论文】 .docx VIP
原创力文档

文档评论(0)