数据结构与算法-绪论

第一章绪论

数据结构ADT

​ 数据类型+操作

ADT结构

  • 一个ADT包含两个部分
    • 数据的声明
    • 运算的声明

常用的ADT

种类 链表、栈、队列、优先队列、二叉树、字典、并查集(合并查找)、散列表、图、其他类型

什么是算法

算法就是用一条接一条的指令来解决給定的问题。

如何比较算法

​ 执行时间

​ 执行语句数

​ 理想解决方案:

  • 理想的解决方案 假设用一个函数(如f(n))来表示一个算法的运行时间,该函数的输入参数就是问题的规模n。然后比较这些不同函数所对应的运行时间。这种比较与机器时间、编程风格等无关。

增长率

zzl

渐进分析

  • 循环:一个循环体的运行时间最多为,循环体内的语句的运行时间(包括循环条件判断)与迭代次数的乘积。
  • 嵌套循环:从内到外进行分析。总的运行时间是所有循环规模的乘积。
  • 顺序执行语句:每条语句的运行时间相加。
  • if-then-else条件语句:最坏情况下的运行时间为,条件判断的时间+最大值(then部分的语句运行时间或else部分的语句运行时间)。
  • 对数级时间复杂度:如果算法可以在常数时间把问题的规模按照某个分数(一般是1/2)分解,那么该算法的复杂度为O(logn)

渐进表示法的性质

jjbsf

常用对数和累加公式

cydshljgs

cydsljgs

分治法主定理

  • 公式:
    $$
    T(n) = 2T(n/2)+O(n)
    $$

  • 规律:

fzfgl

  • 例题部分:

问题规模减小和递归求解主定理

  • 问题规模减小和递归求解主定理的变型

问题规模减小和递归求解主定理变型

猜测和确认的方法

平摊分析

posted @ 2021-02-06 23:08  筮石头  阅读(62)  评论(0)    收藏  举报