算法系统学习-最最简单递归算法分析和迭代法

简介: 系列是基于有一定语言基础(C,C++,Java等等)和基本的数据结构基础进行的算法学习专栏,如果觉得有点吃力 😥 ,建议先了解前提知识再学习喔!本个专栏会将用更容易理解的表达去学习算法,如果在一些表述上存在问题还请各位多多指点

递归算法分析


Case1:求n!

构造算法中的两个步骤:

  1. n!=n*(n-1)!
  2. 0!=1,1!=1

递归算法如下(以n=3为例) 调用过程为:

f(3)--f(2)--f(1)--f(2)---f(3)

---- 递归 -->-------回溯------->

递归调用其实是一个降低规模的过程,和一般算法一样,算法的起始模块通常也是终止模块。

当规模降为1 时,即递归到f(1)时,满足停止条件停止递归,开始回溯并计算。

  1. 从fact(1)=1返回到f(2);
  2. 计算2*f(1)=2返回到f(3);
  3. 计算3*f(2)=6;
  4. 结束递归。

拓展:

为了更好理解,可以把不同次递归调用当作调用了不同的模块(但实际上每次递归调用都是同一个算法模块,在每一次递归调用都是用一个特殊的结构“栈”,记录当前算法的执行状态,特别设置地址栈,用来记录当前算法的执行位置,以备回溯时正常返回,递归模块中的形式参数和局部变量虽然是定义为简单的变量,每次递归调用得到的值都是不同的,它们都是由“栈”来存储的)


递归算法效率分析法--迭代法


基本步骤:

先将递归算法简化成对应的递归方程,然后通过反复迭代,将递归方程的右端变换成一个级数,最后求级数的和。再估计和的渐近阶,或者,不求级数的和耐而直接估计级数的渐近阶,从而达到对递归方程解的渐近阶的估计。


拓展:

用迭代方法的估计递归算法的解,就是充分利用递归算法中递归关系,通过一定的代数,运算和数学分析的级数知识,得到问题的复杂度。


例如Case1:n!

算法的递归方程:

T(n)=T(n-1)+O(1)

其中O(1)为一次乘法操作,迭代求解过程如下:

T(n) =T(n-2)+O(1)+O(1)

=T(n-3)+O(1)+O(1)+O(1)

......

=O(1)+......+O(1)+O(1)

=n*O(1)

=O(n)


现在常用算法简介:


压缩算法:

  1. 无损压缩算法:文本数据压缩都是无损压缩,即还原后的文件和源文件完全相同。常见有:哈夫曼编码,算术编码,字节压缩算法和字典压缩算法。(各个具体就不详细说明,感兴趣的可以自己百度一下)
  2. 有损压缩算法:以音频数据的压缩技术为例,为了更高的编码效率,都允许一定程度的精度损失。


加密算法(内容较多,不具体详细讲解):


  1. 对称加密
  2. 非对称加密

人工智能算法

并行算法

目录
相关文章
|
4天前
|
机器学习/深度学习 数据采集 搜索推荐
机器学习在智能推荐系统中的个性化算法研究
机器学习在智能推荐系统中的个性化算法研究
|
5天前
|
存储 算法 Go
算法学习:数组 vs 链表
算法学习:数组 vs 链表
12 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
7 1
|
4天前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
5天前
|
算法 搜索推荐 JavaScript
算法学习:快速排序
算法学习:快速排序
10 1
|
2天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】Apriori算法在关联规则学习中的应用
【机器学习】Apriori算法在关联规则学习中的应用
14 0
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】Voting集成学习算法:分类任务中的新利器
【机器学习】Voting集成学习算法:分类任务中的新利器
9 0
|
5天前
|
机器学习/深度学习 存储 算法
算法学习:递归
算法学习:递归
13 0
|
5天前
|
算法 JavaScript 前端开发
算法学习:二分查找
算法学习:二分查找
14 0
|
2天前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
18 6