您的位置  > 互联网

学习算法,不要浮躁,技术是一点点学习的!

参加ACM的目的是学习算法。 你不必通过考试才能获得某些东西。 只要努力学好技术,这就是收获。 考试最终是为了学习技术。 算法只是成为程序员的一部分。 如果你不是专门研究算法的算法工程师,你不需要拥有惊人的算法能力。

你还需要学习计算机操作系统和体系结构、网络编程和协议、数据库理论和mysql,这些也很重要。

ACM 计算机专业知识 数据结构

需要掌握队列、栈和图的基本表达式和操作。 至于树,我个人觉得有一些问题需要建树,但不多。 (但是树往往是非常重要的分析工具)另外,排序和搜索并不需要掌握所有的方法,但是你必须保证你有一个满足各种情况的时间复杂度的方法。 所需的最低解决方案。 说到时间复杂度,又得说说哈希表了。 比赛期间的时间限制远远超过空间限制。 这就需要大家尽快掌握“以空间换时间”的原理和策略,并且能够使用哈希表。 以后不得搜索表中存储的数据。 如果实在建不了哈希表,那就看看能不能建二叉搜索树等等,这是争取时间的策略。 掌握这些技能需要每个人都了解数据结构。 特别是对算法复杂度有了比较全面的理性和感性认识。

算法

最基本、最常用的算法是搜索,主要使用回溯和分支定界方法。 这里我想说的是,有些初学者在学习这些基本的搜索算法时,不太注重剪枝。 这是非常不可取的,因为所有搜索问题给你的测试用例都不会很大,而且你常常无法检测到程序运行时间问题,但真实的测试数据绝对可以过滤掉那些不需剪枝的算法。 事实上,参赛者基本都使用常用的搜索算法,而问题的区分往往是基于剪枝等优化。

另一类常用的算法是基于“相似或相同的子问题”,包括递归、递归、贪心法和动态规划。 其中,较难掌握的是动态规划(DP)。 如何抽象出重复的子问题是很多课题的难点。 作者建议初学者仔细了解基于动态规划(DP)的图论中的一些基本算法。 例如,Floyd-算法),并阅读更多定理证明。 虽然这可能没有直接的帮助,但长期坚持会对思考有很大帮助。

病毒式传播! 史上最强! BAT大师《题型复习手册》电子书现已开放下载,帮助你提升数据结构和算法知识。

学完你的算法将会有很大的提高!

推荐一些ACM书籍:

1.《编程指南及在线练习》

这是我的第一本入门书。 本书是北大白练功的姊妹篇。 请注意,它不是 POJ。 好像是北大内部测试用的,不过也对外开放。 看来去年白莲已经变了,所以[u]不知道这本书是否适合新的百炼系统[/u]。

2.《算法竞赛经典入门》

这本书没什么好说的,刘如嘉的白皮书,经典的算法入门书。 [b]强烈推荐[/b]!

3.“算法艺术与信息学竞赛”

刘汝佳的黑本比较难,题目基本都来自Uva。 我读了第一部分,但最后没有读太多。 。 。

4.《算法导论》

经典的书不需要解释。

5.《编程之美》

这很有趣。 它不能作为一本全面的算法书,而是作为一本拓宽你思维的书。 如果您有兴趣,我建议您阅读一下。

6.《计算机编程的艺术》

有好几卷,但只给出了一卷的链接,而且网上版本也很多,大家可以自行选择。

我还没读过这个。 关键是我没时间。 准备考研后放假的时候看一下。

计算机操作系统与体系结构、网络编程与协议、数据库原理与mysql学习资料及路线:

给计算机学生的建议:

1. 学会习惯使用()。 当你的同学只知道如何从csdn下载代码时,如果你会使用,你就领先了他们一半。 这里的代码量非常大,你甚至可以在里面找到你的毕业设计。 我不是要求你抄袭,而是要求你向他们学习,让你的论文更加丰富。

2.学会习惯使用镜像(404 Not Found 结果)。它是对百度结果的补充,可以帮助你高效解决问题。

3. 闲暇时温习一下算法。 推荐(罢工)。 据说做完里面的100题就可以通过所有互联网公司的第一关。 同学们玩游戏累了、心态崩溃的时候可以来这里温习算法。 求职季节里悠闲地散步是不是一种美好的感觉?

4. 在计算机上安装Linux 虚拟机。 所有学生都有计算机,在工作中运行大型系统的情况很少见。 尤其是互联网公司,购买Linux小型机,这会让你刚开始工作时非常不适应。 最好在上学的时候在自己的电脑上安装一台(vbox也可以),并在里面安装Linux。 任何版本的 Linux 都可以,而且都是一样的。 下载Linux iso文件可以去盘搜搜索(网盘搜索就去盘搜——一个好用的百度云搜索引擎),然后从百度网盘下载。 我最近一直在从这里寻找它。 登录虚拟机进行安装,或者等待工具。

5、精通一门编程语言,可以根据市场需求或者自己的兴趣爱好。 一定要购买相应的经典书籍并仔细阅读。

6.在构建一个简单的BS系统(指浏览器-服务器系统)时,无论多么简单,你都会遇到很多陷阱。 帮助您对系统有一个完整的概念非常重要。 它还会迫使你学习构建Web服务的简单方法,http服务行业标准,学习一些html、css等前端知识。东西有多少并不重要,但如果你只学一点点,不需要很多时间。 而这些如果写在简历里,会比学过《数据结构与算法》《操作系统原理》或者通过四六级考试更引人注目!

7、如果能学习一些搜索引擎技术、人工智能技术,并进行简单的实践(这时候Linux虚拟机就派上用场了),那就是锦上添花了。

8、如果你想从事移动应用开发,就做一个微信小程序和一个弹出hello world窗口的按钮吧! 对话框的 apk安装包是必须的。 作者:穆格爱给计算机专业学生的几点建议。 来源:

我在这里整理和学习了近百本计算机经典书籍,包括各种编程语言、算法、网络编程、数据库、分布式等技术。 对学生学习计算机很有帮助,非常系统! 面试、求职的信息都打包放在这里了。 这套资源不是你通常在网上找到的那种资源。 这是非常有价值的。 这些书可以帮助你拿到BAT的offer,不要错过!

图书清单:

如果你觉得不错,记得给我点赞@。 希望大家都能学到东西!