问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

《算法设计与分析》第一章:绪论

创作时间:
2025-01-22 21:18:28
作者:
@小白创作中心

《算法设计与分析》第一章:绪论

算法设计与分析是计算机科学中的核心课程之一,它主要研究如何设计高效、正确的算法来解决各种计算问题。本文作为该课程的第一章内容,将介绍算法的基本概念、特性、描述方式、设计要求以及复杂度分析等基础知识,为后续章节的学习奠定基础。

算法概念

算法定义

算法定义:
算法是规则的有限集,是为解决特定问题而规定的一系列操作。

算法特性

五大特性:

  • 有限性:有限步之后必须结束。
  • 确定性:每一步骤必须有确切的含义,无二义。
  • 可行性:原则上能精确地运行,即在现有条件情况下,是可以实现的。即使手工运算也能实现。
  • 输入:有0个或多个输入,刻画运算对象的初始情况。
  • 输出:有一个或多个输出,反映数据加工结果

�算法的描述方式

算法的描述方式:

  • 自然语言:通俗易懂,容易掌握;但不够严谨、容易有二义性。
  • 框图(流程图或N-S图):重处理流程,便于检查修改;但无法表达数据流程。
  • 高级语言:严谨、准确;细节过多。
  • 伪代码(类语言):结构性较强,比较容易书写和理解,修改起来也方便。

算法设计的要求

“好”算法标准(算法设计的要求):
(1)正确
(2)可读性好
(3)健壮性高
(4)高效率低存储

算法设计与分析任务

设计阶段

该阶段的主要任务:对给定问题,如何设计解决此问题的有效算法。推而广之,对各类具体的问题设计高质量的算法,研究设计算法的一般规律和方法。

常用算法设计方法:
分治法、动态规划、贪婪法和回溯法等

分析阶段

研究算法质量判定准则。即对于设计出的每一个算法,讨论其时空复杂度,作为评价算法质量的标准之一,同时为算法改进提供参考。

算法设计与分析密切联系、相互影响:

  1. 设计的算法需要进行分析,评价其优劣;
  2. 评价结果可用于改进算法设计。

1.基本术语
2.证明方法

算法复杂度分析

时间复杂度

时间复杂度分析步骤:
(1)找算法中的基本语句(执行频率最高);
(2)计算其执行次数,整理成问题规模n的函数;
(3)保留最高次幂,作为渐进时间复杂度。

空间复杂度

一个算法的存储量包括形参所占空间和临时变量所占空间。

在对算法进行存储空间分析时,
只考察临时变量所占空间

递归算法空间复杂度=每层需要的辅助空间*递归深度

最好,最坏和平均复杂度

例题:
采用顺序查找方法,在长度为n的一维整型数组a[0…n-1]中查找
值为x的元素。即从数组的第一个元素开始,逐个与被查值x进行比较。找到后返回1,否则返回0,对应的算法如下

渐近上界记号:O(big-oh)

大O符号:f(n)=O(g(n)),当且仅当存在正常量c和n0,使当n≥n0时,f(n)≤cg(n),即g(n)为f(n)的上界。

例如:
大O符号用来描述增长率的上界,表示
f(n)的增长最 多像g(n) 增长的那样快
,表示算法消耗时间的上界。这

上界的阶越低,结果就越有价值

一个算法的时间用大O符号表示时,总是采用最有价
值的g(n)表示,称之为“紧凑上界”或“紧确上界”。

渐近下界记号:Ω(big-omega)

大Ω符号:f(n)= Ω(g(n)),当且仅当存在正常量c和n0,使当n≥n0时,f(n)≥cg(n),即g(n)为f(n)的下界。

大Ω符号用来描述增长率的下界,表示
f(n)的增长最少像g(n) 增 长的那样快
,也就是说,当输入规模为n时,算法消耗时间的最小值。与大O符号对称,这个
下界的阶越高,结果就越有价值

一个算法的时间用大Ω符号表示时,总是采用最有价值的g(n)表示,称之为“紧凑下界”或“紧确下界”。

渐近紧确界记号: Θ(big-theta)

大Θ符号:f(n)= Θ(g(n)),当且仅当存在正常量c1、c2
和n0,使当n≥n0时,有c1g(n)≤f(n)≤c2g(n),即g(n)与f(n)
的同阶。

阶的证明

  • 反证法
  • 极限法

例题:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号