我是高考毕业生,没有c基础
我现在自学到java数组那部分了(看b站)
一直有个疑惑算法是什么
百度了一下也不是很明白
算法是什么?就好比你做数学题,你高考只能用数学公式定理去实现,那么用到算法呢就好比用了大学里的微积分一样,你写满卷子的回答可能微积分几句话的事就完成了,也就是说需要写的东西少了,而算结果的方法快了。
总结可以是:代码少,效率高。你可以这么理解
个人建议学到线程之前,也就是把集合的知识学习完,重点看set集合与map集合,算法用到哈希比较多。
算法现在有两个概念,混在一起了,没了解就不懂。
1是人工智能的算法,就是机器学习,用数据训练一些模型,这也叫算法,很多时候是指这个。
2是底层的,也就是java的下一层,c语言常用的应用场景需要算法,这个算法其实是数据结构,Java层都给你封装好了,这种一般是硬件开发要精通的,因为他们需要自己写,类似51单片机开发,比这个更难一点的地方会用到。
总结,不需要刷leetcode ,学好数据结构即可,以后搬砖的时候,你会发现没花时间刷leetcode是一个明智之举。
当然,为了适应现在的面试环境,一些有要求的,你还是要刷一刷。但绝对不是把这个当成重点,编程的乐趣不是这个。
提一句,如果你学习算法是为了刷题,那么没必要,学习算法,可以有很多用途,甚至是还没有人想到的用途。国内学算法基本是用来面试,有没有觉得很搞笑,就好像你学习煮饭不是为了做饭的填饱自己的肚子,而是用来考试的,让别人知道你会做饭,然后你快饿死了也不知道煮饭能够填报自己的肚子。
其实算法很有趣的,比如google的网站推荐算法,就是一个很好的例子,这个算法是用来给用户推荐出优质的网页的,而不是用来面试的。
算法简单来说就是:”解决一个问题的方法“,因为解决一个问题的方法并不唯一,所以算法会有优劣之分。
如果要刷leetcode,怎么也得把基础学完吧,有句话叫磨刀不误砍柴工。
1.什么是算法
算法说白了就是解决一类问题的方法
2.算法有用吗
有时候很有用,有时候没有用
各大网站提供的题目,很多其实都是数学题
你刷了半天,感觉就是一直在跟小学奥数较劲
你小学奥数成绩再高
对你解决道路桥梁如何施工没有任何帮助
3.什么时候刷题
什么时候刷都行
等你把整个C/S、B/S和APP的框架全部都学完了再回头刷也行
反正编程语言是工具,算法是数学题,他俩本来就不搭界,不存在你不学完其中一个就没法开展下一个工作的问题
4.我干了20年程序员,除了帮人做作业,就没有做过题
嗯 当你不知道自己在干什么的时候 就叫写算法