数据结构-初识算法
in C笔记 with 0 comment

数据结构-初识算法

in C笔记 with 0 comment

算法

定义

  1. 一个有限指令集
  2. 接受一些输入(有些情况下不需要输入)
  3. 产生输出
  4. 一定在有限步骤之后终止
  5. 每一条指令必须:

    1. 有充分明确的目标,不可以有歧义
    2. 计算机能处理的范围之内
    3. 描述应不依赖与任何一种计算机语言以及具体的实现手段

什么是好的算法

空间复杂度S(n)

根据算法写成的程序在执行时占用存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断。

时间复杂度T(n)

根据算法写成的程序在执行时耗费时间的长度。这个长度往往也与输入数据的规模有关。时间复杂度过高的低效算法可能导致我们在有生之年都等不到运行结果。

如何分析复杂度

  1. 一个 for 循环的时间复杂度等于循环次数诚意循环体代码的复杂度
  2. if-else 结构的复杂度取决于 if 的条件判断复杂度两个分枝部分的复杂度,总体复杂度取三者中最大。

留言: