编程 = 数据结构+算法
互联网大佬也说,算法是基础。要想把编程学好就要打牢基础。
- 常用算法和数据结构
这里列出来,20个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这20个知识点就足够了。
10个数据结构:数组、链表栈、队列、散列表、二叉树、堆、跳表、图、Trie树;
10个算法:递归、排序分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
- 书籍推荐
我这里推荐《数据结构和算法分析》。国內
外很多大学都拿这本书当作教材。这本书非
常系统、全面、严谨,而且又不是特别难,
适合对数据结构和算法有些了解,并且掌握
了至少一门编程语言的同学。而且,这个作
者也很用心。他用了三种语言,写了三个版
本,分别是:《数据结构与算法分析:C
言描述》《数据结构与算法分析:C++描
述》《数据结构与算法分析:Java语言描
述
如果你熟悉的是 Python或者 JavaScript,
可以参考《数据结构与算法 JavaScript描述》《数据结构与算法: Python语言描述》。至于其他语言的算法书籍,确实比较
少。如果你有推荐,可以在留言区补充。
- 面试宝典
算法对面试很重要,很多人也很关心。我这
里推荐几本有益于面试的书籍,分别是
《剑指ofer》《编程珠玑》《编程之美》。
从《剑指 offer》这本书的名字就可以看
出,作者的写作目的非常明确,就是为了面
试。这本书几乎包含了所有常见的、经典的
面试题。如果能搞懂这本书里的内容,应付
一般公司的面试应该不成问题。
《编程珠玑》这本书的豆瓣评分非常高,有
分。这本书最大的特色就是讲了很多针对
海量数据的处理技巧。这个可能是其他算法
书籍很少涉及的。面试的时候,海量数据处
理的问题也是经常会问的,特别是校招面试。
- Github地址
https://github.com/wangzheng0822/algo