学算法进度
java里面本身是包含算法的,只不过它的算法比着大数据python 那些,还是显得有点low的。在java编程学习的过程中,你会接触到一些排序,比如冒泡排序,选择排序,希尔排序,归并排序等,这可以当作是学习算法的入门吧。下面我们从几个阶段来讨论:
1.学习阶段
刚开始学习java编程,主要还是熟悉它的基本语法,以及常用的框架,做到能够开发企业级项目,对于一些算法你可以作为了解,毕竟初级阶段,你出去面试找工作,人家也不会难为你问到一些复杂的算法。
2.工作阶段
这个阶段你已经步入职场了,在职场中,你会发现,算法几乎用不到,可能是你还没到那个价格,但是这并不意味着,你就不需要学习算法了。相反,在你工作的同时,你就要留意公司里面所用的框架,关键的技术点,尤其是用到的算法。有了大致了解后,你就需要利用你工作之余的时间,开始学习算法了,因为你不会是想当一辈子的程序员吧?不想的话,你就要下足功夫去学算法,开源的框架等。
综上所述,你在学习阶段学习一些简单的算法,以及对算法有一个大致的了解,就足够了。而且在吉林北大青鸟学习期间,老师自然会教什么时候才是你学习算法的好时机。
㈡ 什么是算法,为什么需要学算法,以及算法学到什么程度
算法是一些智商高的牛逼人花费长时间多年总结的解决问题的方法!学算法就是学习解决问题的方法,下次遇到问题你可以参考原来的方法做出相应的合适的解决方式!至于程度嘛,学无止境!知识每天都在更新的,新算法也不断出现。
㈢ 学算法要学多久才能学会啊
那得看你每天学多少时间了
下面是 《麻省理工学院-算法导论》(MIT - Introction to Algorithms)2006年5月15号更新完毕 资料 → 计算机教程 VeryCD → 下载
http://lib.verycd.com/2006/03/02/0000092463.html
很不错的,视频讲解,课件,平时作业,测验……用电驴下载
㈣ 算法工程师多久学会
一般主要看个人的悟性了,普通人的话需要6个月到一年左右应该就可以入门了。
㈤ 算法怎么学
常言道“算法才是编程的灵魂”,不管是 Java,python,还是 PHP,都跨不过算法这个门槛。算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。
㈥ (算法)到底应该怎么学
刷与不刷ACM ICPC的人在算法能力上会有巨大差距。
如果真想深入掌握各种算法,还是先刷题吧。刷到一定境界再去看更高级的算法书。
不得不承认现实生活中,一般码农工作对算法能力要求太低了,这一度让人们(包括我)认为算法似乎不那么重要。其实学习算法所锻炼出来的对各种问题敏感的反应和融会贯通能力还是非常重要的。
编程嘛,就是操作数据输出结果
算法和数据结构是配套的,你应该掌握的主要内容应该是:
这个问题用什么算法和数据结构能更快解决
这就要求你对常见的结构和算法了熟于心,你不一定要敲代码,用纸手写流程是更快的方式。
对你不懂的数据结构,你要去搜它主要拿来干嘛的,使用场景是什么。
细节出错是你对编程语言不熟悉才会导致的问题,跟你懂不懂算法没关系,这个你应该多写写练手小程序,背代码是很愚蠢的行为。
其实我觉得你这么迷茫不如实现一下stl的函数好了
我的经验就是去模拟(当然模拟只限于基础的算法)。甚至是手动模拟,比如我之前学深搜,学递归,代码很简单,但是因为涉及到栈,而你的大脑短时间内存储的栈深度只有几层(临时变量越多你大脑能模拟的栈深度就越少),实际上你没办法用大脑去想。比如学习图的深搜,一开始我是不理解的,对递归没办法理解。后来我就在纸上模拟出来,建立好邻接表以后,按照代码步骤一步步纸笔来模拟,慢慢就知道了代码的工作过程。你学习快排也是,当然你背代码也能写出来,但是可能不理解,很快就忘了。《算法导论》书上就有比较细致的执行过程,你手动模拟下partition和quicksort的过程,一开始就用很简单的用例,把整个过程都手动执行一遍,慢慢就了解了。很多算法都有一个循环不变式,你代码如果逻辑正确并且能够维持循环不变式,一般写出来就是正确的。
建议找本《算法》或者《算法导论》这些教材,每肆猛学亩雹棚习一个算法就先大致浏览下, 然后细致分析每一步代码的执行过程(纸笔模拟或者代码单步调试),当确认你真正明白之后,尝试不看代码就靠对算法过程的了解和正确的逻辑去自己实现。
当然,我不认为你写出很多算法就是高手了,现在大部分高级语言不需要你重复造轮子,你造出来的质量也远逊于库中那些高手的代码,可以去学习他们代码的实现,比如看看stl源码。真正工程用到的代码与一般算法实现还是有很多改进的。
最重要的不是你会写这些算迅则法了,而是学会了很多思想。比如二分的思想,递归的思想,分治的思想,动态规划,贪心等,以及现实中很多数据结构的抽象等。难的不是学会了算法,而是如何运用这些算法思想去解决问题。
㈦ 怎么循序渐进的学习算法算法对于程序员有什么作用
首先,对于大部分程序员而言,在工作中不是必须的,但是你要找工作,特别是刚毕业参加校招的学生,想进入一些比较大的公司(BAT之流),是必须要学好算法的。
此外,在提高自我技术水平的过程中,比如去阅读一些优秀的代码的时候,也是需要算法功底的,就像去看leveldb、redis源码的时候,起码得知道跳表是个啥吧,看Linux内核文件系统的代码得知道红黑树是个啥吧。
再就是有一个很重要的影响:算法学的好的话,不论对你思考问题的方式还是对你编程的思维都会有很大的好处。
另外关于刷题的网站还是首推Leetcode。
如果有一些算法基础的话,推荐Codeforces。
至于资料书籍的话,其实没有太多要求,网上的资料很多,随便谷歌一下就能找到很多详细的资料。
算法导论的话不推荐,不推荐初学者看。这本书是本神书,但是这本书的门槛比较高,需要有一定数学基础和算法基础的人去研究,如果你没有一定的基础或者对算法狂热的学习兴趣,你很难啃下去。
改了一下知识列表的结构,分了下类,可能更加清楚一点。这里面基础是我觉得必须应该掌握的,中等的是有如有余力最好学习的,高级的可以了解,可以了解一下,对于个别感兴趣的可以深入学习一下。
㈧ 学算法导论大概要多长时间啊
我们学校里的这门课程的设置是每周两个课时讲课加三个课时习题,总共一个学期。
自学和上课虽然有很大不同,不过这个课时量还是值得参考的,希望能帮到你。