版权声明:问:是谁的心呐???答:我的~~ https://blog.csdn.net/u011436427/article/details/88431064
文章目录
一、绪论
1.计算模型
(1)算法分析
(2)特定算法+不同实例
(3)特定问题+不同算法
2.图灵机:Turing Machine
(1)规范就是一种接口
3.RAM
(1)RAM与TM之间的区别是:
4.大O记号:最差时间复杂度
(1)渐进分析:大O记号
(2)大Ω记号(最好时间复杂度)和大theta记号(平均时间复杂度)
(3)常数时间复杂度:O(1)
(4)对数复杂度:O(logn)
(5)多项式复杂度与线性复杂度O(n)
(6)指数复杂度
(7)各个类型复杂度的增长速度对比
规模较小时
规模较大时
(8)各个类型复杂度层次对比
5.算法分析
(1)算法分析:复杂度分析的常用方法
(2)常用的级数求和公式:算术级数、幂方级数、几何级数、收敛级数、调和级数、对数级数
(3)循环VS级数
(4)取非极端元素
(5)冒泡排序法
(6)封底估算:准确定量
三生三世中的一天,相当于1天中的1秒
6.迭代与递归
(1)数组求和:迭代
(2)由上面的数组求和的eg总结一个减而治之的算法策略,其内容如下:
(a) eg如下:用递归的方式来对数组进行求和,并用递归跟踪的方法来分析复杂度
用递归方程和递归基的方式求时间复杂度:
(b)eg:两个递归基:A[lo],A[hi]
(3)分而治之的策略
(a)eg:二分递归来求解数组求和
利用递归跟踪求解时间复杂度:(更适合我理解)
利用递推关系和递推基求解时间复杂度
(b)eg2
先将初始化的最大和次大值定义好,
利用递归和分治法来改进,将数组A分为了两部分,一部分是L,一部分是R