在计算机科学领域,算法是解决问题的核心。不同的问题需要不同类型的算法来解决。因此,了解算法分类对于选择合适的算法来解决特定问题非常重要。
按照实现方式分类,可以将算法分为递归算法、迭代算法、逻辑算法、串行算法和并行算法和分布式算法、确定性算法和非确定性算法、精确算法和近似算法等。
递归是一种通过重复调用自身来解决问题的方法;而迭代则是通过重复执行一组语句来解决问题。
递归和迭代是两种不同的算法实现方式。
递归是一种通过重复调用自身来解决问题的方法。它通常用于解决具有重复子问题的问题,例如阶乘、斐波那契数列等。递归算法通常具有简洁清晰的结构,但需要注意栈溢出等问题。
迭代则是通过重复执行一组语句来解决问题。它通常用于解决需要多次循环计算才能得到结果的问题,例如求最大公约数、求平方根等。迭代算法通常具有较高的效率,但结构相对复杂。
理论上递归和迭代可以相互转换,但实际从算法结构来说,递归声明的结构并不总能转换为迭代结构。
逻辑算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。一般算法有顺序结构、选择结构、循环结构三种基本逻辑结构。
串行指程序按顺序执行;而并行则指多个程序同时执行。
串行和并行是两种不同的数据传输方式。
串行通讯是指在同一时刻,只能传输一个bit位的信号,只需要一根信号线。例如,当需要传输1字节信息时,串行通讯需要8次传输才能完成。
并行通讯则是指在同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根信号线。例如,当需要传输1字节信息时,并行通讯只需一次传输就能完成。
确定性指程序总是按照预定方式运行;而非确定性则指程序运行结果可能会有多种情况。
确定性算法是指每一步骤都确定的计算机算法。非确定性算法则是指在理论框架中,可以移除对每个操作结果的限制。
精确指程序能够给出准确答案;而近似则指程序只能给出近似答案。
精确解是理论上的最优解,它是基于严密的精确算法得到问题的最优解。近似最优解则是近似算法最终收敛时计算出的解,但由于是近似解,每次运行程序得到的结果可能不一样。
☝️ ⭐
以上就是关于算法分类的简单介绍。了解这些分类有助于我们更好地选择合适的方法来解决特定问题。
复杂的算法底层都是简单的代码,只有熟练掌握才能发挥算法最大的威力。
如果你对这篇文章感兴趣,欢迎在评论区留言,分享你的想法和建议。如果你喜欢我的博客,请记得点赞、收藏和关注我,我会持续更新更多有用的网页技巧和教程。谢谢大家!
项目仓库看这里:
https://github.com/w-x-x-w
https://gitee.com/w-_-x
博客文章看这里:
https://blog.csdn.net/weixin_62650212
视频推送看这里:
https://space.bilibili.com/1909782963