首页 > 编程语言 > 详细

数据结构与算法-绪论

时间:2021-02-06 23:49:40      阅读:32      评论:0      收藏:0      [点我收藏+]

第一章绪论

数据结构ADT

? 数据类型+操作

ADT结构

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

常用的ADT

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

什么是算法

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

如何比较算法

? 执行时间

? 执行语句数

? 理想解决方案:

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

增长率

技术分享图片

渐进分析

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

渐进表示法的性质

技术分享图片

常用对数和累加公式

技术分享图片

技术分享图片

分治法主定理

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

  • 规律:

技术分享图片

  • 例题部分:

技术分享图片

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

技术分享图片

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

技术分享图片

猜测和确认的方法

平摊分析

数据结构与算法-绪论

原文:https://www.cnblogs.com/shitouzi-shi/p/14383458.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!