《数据结构C++版本——邓俊辉》学习笔记——第一章 绪论

版权声明:问:是谁的心呐???答:我的~~ 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
在这里插入图片描述

(4)典型的递归方程如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/88431064
今日推荐