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,则对于一特定的问题,前者一定比后者块吗?不一定。

posted @ 2021-10-16 18:30  fao99  阅读(232)  评论(0)    收藏  举报