大家好,今天小编关注到一个比较有意思的话题,就是关于java 语言算法的问题,于是小编就整理了1个相关介绍Java 语言算法的解答,让我们一起看看吧。
JAVA算法能力差,该怎么提高?
Java中的算法大多还是和思维逻辑关系挺大的,给你一个需求,首先建立的还是思想,有了思想然后和算法结合就能够实现了,你可以百度找找别人的代码逻辑思维和算法来学习,Java只要经历项目多了,见到的多了,用到的多了,自然就会有了自己的代码逻辑和算法,所需可以找找大神的优质代码进行借鉴和学习。
谢谢邀请!
Java程序员有不少都在从事应用级开发岗位,与C语言程序员相比,Java程序员往往在算法设计方面的能力稍差一些,与R语言程序员相比就更是如此了。
Java程序员大部分都是在从事Web开发、Android开发以及一些app的后端服务开发等任务,这些开发的特点往往都是以实现具体业务逻辑模块为主,由于Java的封装能力比较强,所以这些程序员平时设计算法的机会并不多,这是导致Java程序员算法能力差的根本原因。当然,大部分应用级程序员基本上都是如此,包括PHP、C#、JavaScript、OC等语言的程序员。
如果要想解决算法问题要从以下几个方面入手:
第一:系统的学习一下算法基础知识。算法基础知识是提升算法能力的关键,算法问题无非就是排序、统计、查找、规划等问题,但是这些问题的背后却有大量的具体内容需要掌握,算法问题是解决逻辑问题的根本,从这个角度来说,算法是每个程序员都应该系统学习的内容。
第二:系统的学习一下数据结构。数据结构和算法是不分家的,如果说算法是解决问题的思路,那么数据结构则是具体的实现方法,所以程序设计通常被认为是算法设计加数据结构。Java实现数据结构的过程是提高算法能力的一个重要基础,所以这部分实验是非常关键的。
第三:与实际问题相结合。判断一个程序员的算法设计能力,往往是通过具体的问题来体现的,作为一个程序员来说,如何把算法与实际问题相结合是一个难点,也是学习过程中的重点。Java语言自身是一个可以做落地应用的编程语言,所以不少研发人员都会选择Java做实际项目的实现语言,我在早期做机器学习项目的时候就是采用Java语言实现的(后来改用Python了)。
作者简介:中国科学院大学计算机专业研究生导师,从事IT行业多年,研究方向包括动态软件体系结构、大数据、人工智能相关领域,有多年的一线研发经验。
欢迎关注作者,欢迎咨询计算机相关问题。
首先,JAVA与算法不是绑定关系,即Java不仅可以实现算法,而算法也不一定非要用java来写。所以题主的问题,我认为其重点在于算法。
在计算机本科学习课程中,会有专门的课介绍算法,我们当时用的是中文版的《算法导论》,这本书现在某电商网站上打出的旗号是“程序员必读经典”,这可是连《thinking in java》都不敢说的,为什么?
因为程序员可以不会JAVA,但是不可以不会算法。编程语言只是工具,算法才是驱动工具的灵魂。
在校期间,老师通常介绍的是比较浅显常用的算法,重点是培养你的计算机思维,并且希望你今后能够举一反三,自主的设计使用算法。常见的基础算法有递归,动态规划,贪心,深度最优,广度最优等等。但是这些无论是在面试还是实际工作中都是不够的,因此,你需要在课外时间主动的去了解更多的算法。
上面的大部头算法书籍,对于大多数人来说都是一个难啃的骨头,里面有些数学推导过程很容易把人绕懵。因此我推荐大家去网易云课堂看MIT的《算法导论》视频课,里面那个高个子会把一些数学推导,从很基础的部分开始推,对于初学者来说也是非常友好的体验。
当你拥有了算法的基础知识后,就可以到LeetCode上刷一些算法题了。这个网站是国外编程人员找工作必备,有些大公司比如谷歌微软甚至会主动联系上面表现优异的用户,邀请其参与公司面试。LeetCode上面的算法题分类十分全面,既可以根据难度分类,也可以根据算法类型分类。这意味着你既可以从简单的题开始扩充自己的知识广度,也可以针对某一类型的算法进行深度尝试。
此外,LeetCode还支持多种语言,包括Java,Python,JS,C等等,题主可以尝试在上面用JAVA去解题,刚好完美锻炼到你认为不足的“JAVA算法能力”。
当你把LeetCode上的题刷到三分之一的时候,我想你一定就能感受到自己的进步了。
谢邀。
1.个人觉得多做题目,在题目的应用中得到锻炼,光看理论,代码什么的很抽象,题目来的实在。
2.买本宝典回来,闭关修炼,最经典的就是算法导论,能练到几层就看你自己的的造化了。
3.学会几个基本的排序算法,然后其余的到网上找算法题做
1. 首先你提高算法能力的目的是什么?如果是为了通过面试时候方便点,做点题就好,别人提到的leetcode之类的已经足够。ICPC题目没有必要研究,说的不好听些,很多题目出了只是为竞赛而竞赛
2. 面试中考察算法,最终是要考察你的思维能力:是否严谨,是否有解决未知问题的能力,等等。不管你最后选择怎样提高,请一定不要忘了这个初衷。
3. 没有必要去看《算法导论》。更没有必要什么一章一章去看,IT公司 99%以上的人,不需要知道什么是Fibonacci Heap。
4. 读算法教科书的目的是培养以下2个能力:怎么从一个抽象数学问题中找到该问题性质,并巧妙利用性质解决问题;构造的算法是否在假定的输入条件下,都正确运行,最差的情况的定量分析。
到此,以上就是小编对于java 语言算法的问题就介绍到这了,希望介绍关于java 语言算法的1点解答对大家有用。