第一章绪论
数据结构ADT
? 数据类型+操作
ADT结构
常用的ADT
? 种类 链表、栈、队列、优先队列、二叉树、字典、并查集(合并查找)、散列表、图、其他类型
什么是算法
? 算法就是用一条接一条的指令来解决給定的问题。
如何比较算法
? 执行时间
? 执行语句数
? 理想解决方案:
- 理想的解决方案 假设用一个函数(如f(n))来表示一个算法的运行时间,该函数的输入参数就是问题的规模n。然后比较这些不同函数所对应的运行时间。这种比较与机器时间、编程风格等无关。
增长率
渐进分析
- 循环:一个循环体的运行时间最多为,循环体内的语句的运行时间(包括循环条件判断)与迭代次数的乘积。
- 嵌套循环:从内到外进行分析。总的运行时间是所有循环规模的乘积。
- 顺序执行语句:每条语句的运行时间相加。
- if-then-else条件语句:最坏情况下的运行时间为,条件判断的时间+最大值(then部分的语句运行时间或else部分的语句运行时间)。
- 对数级时间复杂度:如果算法可以在常数时间把问题的规模按照某个分数(一般是1/2)分解,那么该算法的复杂度为O(logn)
渐进表示法的性质
![技术分享图片]()
常用对数和累加公式
![技术分享图片]()
分治法主定理
![技术分享图片]()
![技术分享图片]()
问题规模减小和递归求解主定理
![技术分享图片]()
![技术分享图片]()
猜测和确认的方法
平摊分析
数据结构与算法-绪论
原文:https://www.cnblogs.com/shitouzi-shi/p/14383458.html