当前位置:   article > 正文

【算法】初识算法

【算法】初识算法

尽量不说废话

我们这里指的算法,是作为程序员在计算机编程时运用到的算法。
算法是一个庞大的体系,主要包括以下内容:

一、数据结构

算法中不论采用什么经典算法,都避不开数据。
数据有多种类型,而如何表达数据以便满足不同需求是一个很必要的问题。比如如何对厂房中的货物进行统计、不同等级的产品进行管理等。
我们通常见到的比如堆栈、队列、树、图等都是流行且基本的数据结构。他们有各自的使用规则、比如队列:先进先出、堆栈:先进后出等等。

二、排序算法

有了数据,那么整理数据是必不可少的。排序是对同类型数据的排列,比如从大到小、在实际应用中会经常见到。
常见的冒泡排序,快速排序、插入排序、选择排序等。

三、检索算法

对于我们整理好的数据,我们如何进行后期使用,如何快速拿到我们想要的数据。
这时候检索算法就是我们所需要的了。
比如线性查找、非线性查找等。
往往在大型应用中需要考虑时间复杂度和空间复杂度。因为在检索过程中总有快慢之分,存储空间大小之别。在其中寻求最优解是我们需要考虑的问题。

四、字符算类型算法

字符是一类特殊的数据,对它相关的算法学习应该着重考虑。这个我们之后再说。

五、递归算法

递归是一个神奇的东西,我们在大学的c语言课中都有学过。
它能够将复杂的问题简化,使得每个子问题都类似于原始问题,但是规模更小。通过不断地缩小问题规模,最终达到可以直接解决的简单情况,然后通过组合这些简单情况的解决方案来构建原始问题的解答。

用于数据结构(如树的遍历)、排序算法(如快速排序和归并排序)、搜索算法(如深度优先搜索和广度优先搜索)等。递归算法的优点是代码通常比较简洁、易于理解,但缺点是可能会导致大量的函数调用,从而增加内存消耗和计算成本。在某些情况下,递归算法可以通过迭代(使用循环结构)的方式进行优化,以减少资源消耗。

六、贪心算法

是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。这种算法在解决问题时通常不考虑所有可能的解决方案,而是通过每一步的局部最优选择来快速达到一个解决方案

贪心算法的特点在于它的简单性和高效性。在某些问题中,贪心算法可以迅速得到一个最优解,尤其是在那些具有最优子结构的问题中,即一个问题的最优解包含其子问题的最优解。然而,贪心算法并不总是能得到全局最优解,它适用于那些具有贪心选择性质的问题,即局部最优选择能够导向全局最优解的情况。

七、动态规划

与贪心算法同等级,以时间或地域划分阶段的过程的最优解。

八、归一化算法

用于大数据,是一个代表性算法,当然大数据还有其他算法值得去学习。

MapReduce 4:
MapReduce是一种编程模型,用于大规模数据集的并行处理。它由两个主要步骤组成:Map(映射)步骤处理数据,Reduce(归约)步骤汇总结果。

Hadoop 1:
Hadoop是一个开源框架,用于存储和处理大数据集群上的大量数据。它使用MapReduce进行数据处理,并提供了一个分布式文件系统(HDFS)。

Spark 2: Spark是一个快速的大数据处理框架,支持批处理、交互式查询、流处理和机器学习。

时间亚线性算法 1:
这类算法能够在处理时间远小于数据规模的情况下,对数据进行有效的分析和查询。 空间亚线性算法 1: 专注于在有限的内存空间内高效处理大量数据。

外存算法 1: 这些算法设计用于在外部存储(如硬盘)上处理数据,因为数据集太大而无法完全加载到内存中。

众包算法 1:
通过将任务分发给广泛的网络用户来解决问题,适用于处理需要人类直觉或判断的大数据问题。

后记

12点了,先到这吧,后面会写一些算法的实例出来,尽量通俗易懂,去繁留简。
(最后求个赞,感谢!)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/412145
推荐阅读
相关标签
  

闽ICP备14008679号