我们经常说:算法是编程的灵魂。无论是 Python,还是 PHP,都离不开算法。就连很多大厂在面试时,都会出算法题。
不过学习算法并不容易,且竞争压力较大,但这并不是说,你不会算法就会找不到工作,还是会有工作的。
因为在很多人的日常工作中是不需要接触数据结构和算法的,只需要挑挑框架,按照规范写代码,照着文档调用 API 就够了。但你要是想要有更高的晋升,站在金字塔顶端,那熟悉算法是必须的。
除此之外,有很多人问,算法是数学吗?数学不好的人能学算法吗?……
其实,数学和算法在本质上就有区别。算法的本质是解决问题的方案,而数学是优化这种方案的工具。
学习算法,并不是一上来啃《算法导论》就行了,这种是错误行为。
因为这本书并不适合新手,如果算法基础比较薄弱,那势必会形成一个“学习→放弃”的恶性循环中。在豆瓣对此书的讨论中,有不少人都在喊:太难了!学不下去!……
那如何正确学习算法呢?
三分学习,七分练习
而且学习算法知识点,并不能看完书或者视频后就扔了,对于重难点必须反复学,直到学会为止。巩固好基础知识,稳扎稳打。就像在初高中学习时一样,要学会复习,查漏补缺。
学习完基础知识之后,一定要趁热打铁,刷题、实战,也是检测知识掌握程度的最佳方法。
除此之外,还可以多看各路算法高手的代码,剖析他们写代码的思路及解决方案,进行反复练习。
如何精通一个领域呢?这里我有三点建议:
-
切碎知识点,将知识点进行量化,整理成一个完整的知识脉络;
-
刻意练习,将一个知识点、一道题目进行反复练习;
-
获得反馈,无论是主动反馈(看大佬代码),还是被动反馈(大佬指点)均可。
另外,我还将分享几本适合入门到进阶的书籍,供大家学习、参考。
算法入门书籍
1.《算法图解》
豆瓣评分:8.5
本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。
2.《大话数据结构》
豆瓣评分:8.7
以一个计算机教师的教学过程为场景,讲解数据结构和相关算法的知识。
全书以趣味方式来叙述,大量引用各种各样的生活知识来类比,并充分运用全彩色图形语言来解读抽象内容,对数据结构所涉及的一些经典算法做出逐行分析、多算法比较。
算法进阶书籍
1.《数据结构与算法分析》系列
此系列丛书被很多大学当作教材,非常系统、全面、严谨,适合掌握了至少一门编程语言的同学。
2.《算法导论》
豆瓣评分:9.2
全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材。
在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。
3.《编程珠玑》
豆瓣评分:9.1
本书是计算机科学方面的经典名著,书的内容围绕程序设计人员面对的一系列实际问题展开。
给自己插播一个小广!现加入蓝桥云课代码交流群,可获得超额福利哦~
我将数据结构的知识点进行了简要的划分:
1.一维
-
基础:数组 array(string)、链表 linked list
-
高级:栈 stack、队列 queue、双端队列 deque、集合set、映射 map(hash or map)……
2.二维
-
基础:树 tree、图 graph
-
高级:二叉搜索树 binary search tree (red-black tree, AVL)、堆 heap、并查集 disjoint set, 字典树 Trie……
3.特殊
-
位运算 Bitwise、布隆过滤器 BloomFilter • LRU Cache
另外,我还整理了数据结构与算法中所必须的知识点,并用思维导图的形式呈现,更方便大家进行查漏补缺:
如果你想学习数据结构与算法,可以来看看蓝桥云课《数据结构与算法攻坚课》。
本课程系统地介绍了常见的数据结构以及算法,从最简单的排序、字符串、链表到贪心、回溯以及图的相关算法,用具体的代码与大量的动图,精彩而具体地诠释算法的执行过程,拨开了算法身上的迷雾,展现算法的真实本质。
(希尔排序)
(快速排序)
本课程以文档+实验的形式讲解知识点,边学知识,边敲代码,有助于大家理解重难点。
如果你想学习此门课程,请先扫码添加小蓝领取 3 日标准会员,可享八折优惠哦~
▼扫码领取福利▼
原文始发于微信公众号(蓝桥云课精选):死磕算法真的有必要吗?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论