龙空技术网

带你进入算法,通俗易懂,学习算法没有那么难

编程干货铺子 111

前言:

目前兄弟们对“算法为什么难”可能比较注意,姐妹们都想要剖析一些“算法为什么难”的相关内容。那么小编在网上网罗了一些对于“算法为什么难””的相关文章,希望大家能喜欢,姐妹们快快来了解一下吧!

[玫瑰][玫瑰][玫瑰]春风拂面,我守候在此,我是行者

序言什么是算法

通俗意义来讲就是解决一个问题的方法,比如我去一个数据存储中查找一个数据,那我如何去找寻自己想要数据呢?算法的好坏 ,通常去看完成任务的耗时(通常用时间复杂度表示)

为什么学算法

作为java后端开发者,经常做一些功能性业务开发,感觉算法对我们的开发逻辑影响不大,真的是这样吗?你的感觉没有错,是因为开发中需要的工具类与方法都是已经封装好的,不需要你去实现过程,直接面向对象开发。比如你使用集合类,java都已经提供好的封装。有时,可能在你处理大量数据时或者底层开发,需要你自己去借用算法理论,去实现功能。

学习算法,能够提高功能执行效率,大规模计算,了解底层,我的感受是有助于提高自己编程思维逻辑感,比如让你实现一个业务逻辑时,你就会考虑很多边界问题,然后对业务逻辑健壮性处理。

数据结构与算法什么关系

数据结构顾名思义就是数据存储方式呗,数据怎么存储,是不是关系到算法的效率。所以它们俩的关系是相辅相成

菲波那契数列

示例:菲波那契数列 :0 1 1 2 3 5 8 …

通过数列总结规律:n=(n-1)+(n+2)

#include <iostream>#include <vector>int fibonacci(int n) {    if (n <= 1) {        return n;    }        std::vector<int> dp(n + 1);    dp[0] = 0;    dp[1] = 1;    for (int i = 2; i <= n; i++) {        dp[i] = dp[i - 1] + dp[i - 2];    }    return dp[n];}int main() {    int n = 10;  // 求第 n 项    int result = fibonacci(n);    std::cout << "第 " << n << " 项的菲波那契数列值为:" << result << std::endl;    return 0;}

这个逻辑实现 -称为动态规划

总结

在这里只是介绍了算法运用,其实菲波那契数列也可以用递归算法实现,为什么选择用动态规划呢?通过用递归算法实现与动态规划算法实现对比,你能总结出动态规划的特点吗?

您对文章或者编程有什么建议、想法、问题,都可以评论区留言互动哦

每天不断更,精彩不停止,明天见,我是行者

记得留个关注哟,让我们一起去看星辰大海,品味代码人生

标签: #算法为什么难 #算法难不难 #算法为什么难编程