一、问题引入
在leetcode和《数据结构与算法分析》同时看到了一道求“最大子序列的和”这样的题,那么作为初学者,我想到了两种基础算法。
二、算法一
从上述的代码中可以看出该代码的时间复杂度为O(N 的3次方),因为一般规则认为每嵌套一个for循环,时间复杂度就叠乘O(N)。
ps:那么这种算法在处理大量数据时,可能会受到最大时间上限的限制,再仔细查看代码运行过程,我们可以看出k循环每次运行时,总是算了上一次循环中算过的数据,造成时间的大量浪费。
三、算法二
从上述代码中可以看出该代码的时间复杂度是O(N的二次方),规则见上;这种算法大幅度减少了处理大量数据时造成的时间浪费。
四、图例解释
这幅图例为大家呈现了算法一和算法二的具体过程,以及为什么说算法一 会重复地运算数据 。
记得关注我哦,继续更新算法三与算法四!