1算法基本概念
一算法基本概念
1 考核方式
- 出勤以及课堂提问
- 课程练习
- 讨论课
- 期末考试
2 主要知识点
- 算法分析的基本概念
- 排序算法
- 递归与分治
- 动态规划
- 贪心算法
- 随机算法
- 回溯法与分枝定界分
- NP完全理论
- 近似算法
- 智能优化算法
3 算法定义
- 一般认为,算法是由若干条指令组成的有穷序列,具有以下五个特征
- 确定性:每条指令都是明确的,无二义的
- 能行性:每条指令都必须是能够执行的
- 输入:允许有0个或多个输入量,取自特定的集合
- 输出:产生一个或多个输出,它们与输入量之间存在某种特定的关系
- 有穷性:每一条指令执行的次数都是有穷的
4 时间复杂度
- T(n)=O(f(n)):
- 若存在c > 0,和正整数n0≥1,使得当n≥n0时,总有T(n)≤c*f(n)
- 给出了算法的时间复杂度的上界
- T(n)=Ω(f(n)):
- 若存在c > 0,和正整数n0≥1,使得当n≥n0时,存在无穷多个n ,使得T(n)≥c*f(n)成立
- 给出了算法的时间复杂度的下界
- T(n)=Θ(f(n)):
- 若存在c1 ,c2>0,和正整数n0≥1,使得当n≥n0时,总有T(n)≤c1*f(n),且有无穷多个n,使得T(n)≥c2 * f(n)成立,即:T(n)= O(f(n))与T(n)=Ω(f(n))都成立
- 既给出了算法时间复杂度的上界,也给出了下界
5 算法研究的几个主要步骤
- 设计
- 表示
- 确认
- 分析
- 实现和测试
6评价算法的主要方面
- 健壮性
- 简单性
- 高效性
- 最优性
7 课后提问
-
时间复杂度的几个符号的含义,请简要描述?
-
什么是算法,算法的几个特征是什么?
-
操作系统是算法吗? 操作系统不是算法。算法的定义是有规范的输入,在一定有限时间内获得所要求的输出的指令的集合。从定义看它与操作系统是两个概念,当然具体到操作系统本身来说是由很多不同的算法来执行,比如说磁盘调度算法、进程调度算法等等。
-
算法和程序的区别?首先两者定义不同,算法是对特定问题求解步骤的描述,它是有限序列指令。而程序是实现预期目的而进行操作的一系列语句和指令,即算法是解决一个问题的思路,程序,是解决这些问题所具体好写的代码。第二两者的书写规定不同,程序必须用规定的程序设计语言来写,而算法很随意。
-
请针对打车软件,说说其中蕴含哪些可能的算法?打车起点和终点是图的最短路径算法,给你匹配符合的司机是排序算法。
-
请列举一个实际应用的例子,它在应用层上有算法的内容?美图秀秀,图像处理算法。
-
两个算法的时间复杂度分别是n3和2n,则对于一特定的问题,前者一定比后者块吗?不一定。

浙公网安备 33010602011771号