算法是计算机科学领域最重要的基石之一,算法工程师也是数据科学领域最重要的岗位之一。因此,今天小会整理出一些算法相关学习资源,包括书籍、算法刷题网站、项目资源、视频课程、面试要领这5个方面,欢迎大家收藏并转发哦。
争取做到,看完这一篇,算法相关学习资料全掌握!话不多说,这就开始吧!
【入门阶段】
1、啊哈!算法(豆瓣评分7.7)
这是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。
2、算法图解(豆瓣评分8.4)
图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。
3、《趣学算法》(豆瓣评分8.9)
非常好的一本书,图解多,思路清晰,不仅讲了问题分析算法设计的过程,还讲了如何优化算法,不同的数据结构上设计算法会有什么样的复杂度。值得推荐。
【掌握阶段】
1、大话数据结构(豆瓣评分7.9)
《大话设计模式》作者程杰潜心三年推出的扛鼎之作,以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
2、算法设计与分析基础(豆瓣评分8.7)
本书十分适合用作算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要读者具备数据结构和离散数学的知识即可。
3、算法详解(卷1)——算法基础(豆瓣评分8.8)
本书为对算法感兴趣的广大读者提供了丰富而实用的资料,能够帮助读者提升算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及在准备面试的应聘者和面试官阅读参考。
【阶段阶段】
1、算法导论(原书第3版)(豆瓣评分9.2)
经典必看著作!!本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。不建议初学者看,等有了一定的算法功底进行学习比较好。
2、编程珠玑(豆瓣评分9.1)
本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。这本书最大的特点是里面涉及到了对于海量数据的处理方式,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。
4、计算机程序设计艺术(豆瓣评分9.8)
这本书首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。此第3版增加了数十项简单但重要的算法和技术,并根据当前研究发展趋势在数学预备知识方面做了大量修改。
5、算法第 4 版(豆瓣评分9.3)
《算法(英文版•第4版)》作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了本书内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。
6、算法引论(豆瓣评分9.1)
这本书是国际算法大师乌迪·曼博(Udi Manber)博士撰写的一本享有盛誉的著作。本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理归纳证明,揭示了算法设计的基本思想和本质。
【面试工作必看书籍】
1、剑指offer(豆瓣评分8.3)
这本书剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。是面试必读书籍之一。
2、编程之美(豆瓣评分8.4)
这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。
3、《挑战程序设计竞赛(第2版)》(豆瓣评分9.0)
本书对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。
4、《程序员实用算法》(豆瓣评分7.3)
本书重点关注的是实用、立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。结构清晰,示例丰富,可作为广大程序员的参考用书。
1、LeetCode
估计 leetcode(力扣)大家都很熟悉了,很多国内外的程序员在上面刷题,难度从 Easy、Medium 至 Hard 都有,据说很多面试官都会从中挑选各种题目,号称大厂的筛码工。
2、代码课堂
大学生在线编程首选平台,里面也有很多IT题库,种类丰富,题量齐全。
3、牛客网
牛客网作为国内内容超级丰富的 IT 题库,各种题库+面试+学习+求职+讨论 360 度无死角服务,堪称"互联网求职神器"。它好就好在不只是一个刷题的平台,还是一个交流学习的平台。
4、hihoCoder
网站的技术团队来自于原北大 POJ 的开发团队,至于 POJ 会在后面的篇章中介绍,反正膜拜就完事了。一些知名的大厂比如微软、百度、腾讯、网易等会在上面举办在线编程比赛,风格倒是和 ACM 比赛类似。
5、HDU
杭电(杭州电子科技大学)的 OJ 大概是国内最火的几个 OJ 之一了,现在上面大概有接近 6k 的题量,网上有很多的刷题顺序,刷题指南。
6、POJ
作为国内最火的几大 OJ 之一,现在上面有 3k+ 的题量,关于 POJ 的刷题指南网上更是很多。
1、Competitive-Programming-Docs
项目介绍:这个项目是一个总资源集,内容非常全面,包含算法竞赛论文,课件,文档,笔记,平台等资料。
项目地址:
https://github.com/LzyRapx/Competitive-Programming-Docs
2、负重前行,前端工程师如何系统练习数据结构和算法?【上】
项目介绍:作者详细提供了系统练习数据结构和算法的方法论。
项目地址:
https://juejin.im/post/6844904061947346957
3、GitHub——微软项目
此存储库包含构建推荐系统的示例和最佳实践,作为 Jupyter 笔记本提供。这些示例详细介绍了我们对五个关键任务的学习:准备数据、模型、脱机指标评估算法、型号选择和优化、操作性、
项目地址:
https://github.com/microsoft/recommenders
4、五分钟学算法:算法与数据结构文章详细分类与整理!
项目介绍:该项目包含10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树,以及10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
项目地址:
https://www.cxyxiaowu.com/7072.html
5、 GitHub开源项目——Build Your Own X
该库收集了诸多优质资源,教你如何构建一些属于自己的东西,内容主要分为增强现实、区块链、机器人、编辑器、命令行工具、神经网络、操作系统等几大类别。
项目地址:
”https://github.com/danistefanovic/build-your-own-x
6、GitHub开源项目——Gitignore
帮助Git工程师解决:每次你需要为项目创建 .gitignore 文件时,只需要打开这个项目,针对你当前所用编程语言或框架,去寻找对应 .gitignore 模板替换即可。
项目地址:
https://github.com/github/gitignore
1、300分钟搞定数据结构与算法
LeetCode 官方国内唯一合作课程,leetCode刷题秘籍独家揭秘,专注于面试场景,全程动态动画教学。
地址:https://www.bilibili.com/video/av796404932
2、 重学数据结构与算法
从容应对实战场景,轻松掌握刷题技巧,打败 97% 的程序员。
地址:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=185#/sale
3、麻省理工学院公开课:算法导论
课程主题包含了:排序、搜寻树、堆积及散列;各个击破法、动态规划、偿还分析、图论算法、最短路径、网络流、计算几何、数字理论性算法;多项式及矩阵的运算;高速缓存技术及并行运算。
地址:http://open.163.com/special/opencourse/algorithms.html
4、中国大学MOOC-数据结构
国内关于数据结构非常经典的课程。
地址:https://www.icourse163.org/course/zju0901-93001
算法与面试之-如何准备算法面试
主要介绍算法面试的一些问题、以及如何准备算法面试。
地址:https://juejin.im/post/6844903621105041416
—————————————分割线——————————————————
吐血总结了这么多,如果你觉得有用,关注收藏点赞走一波吧!!