前言git
我决定写篇短文,即为此文。之因此要写这篇文章,缘于微博上常有朋友询问,要毕业找工做了,如何备战算法。尽管在微博上简单梳理过,以下图所示:程序员
但因字数限制,特撰此文着重阐述下:程序员如何快速准备面试中的算法,顺便推荐一些相关的书籍或资料。github
备战面试中算法的五个步骤面试
整体来讲,备战面试中的算法,分为五个步骤,以下:算法
一、首选你得确保本身已经掌握好一门编程语言编程
若是是C的话,推荐Dennis M. Ritchie & Brian W. Kernighan著的《C程序设计语言》,和《C和指针》;网络
C++ 则推荐《C++ Primer》,《深度探索C++对象模型》,《Effective C++》 。数据结构
掌握一门语言并不容易,不是翻完一本书便可了事,语言中的细枝末节须要在平日不断的编程练习中加以熟练。数据结构和算法
二、过一遍微软面试100题系列编程语言
我从2010年起开始整理 微软面试100题系列,见过的题目不可谓很少,但无论题目怎般变化,依然是那些常见的题型和考察点,固然,不考察任何知识点,纯粹考察编程能力的题目也家常便饭。但无论变幻无穷,始终不离两点:①看你基本知识点的掌握状况;②编程基本功。
而当你看了一遍微软面试100题以后(不要求作完),你自会意识到:数据结构和算法在笔试面试中的重要性。
三、苦补数据结构基础
若是学数据结构,能够看咱们在大学里学的任一本数据结构教材都行,若是你以为实在不够上档次,那么能够再看看《STL源码剖析》。
4 、看算法导论
《算法导论》上的前大部分的章节都在阐述一些经典经常使用的数据结构和典型算法(如二分查找, 快速排序、 Hash表),以及一些高级数据结构(诸如红黑树、 B树),若是你已经学完了一本数据结构教材,那么建议你着重看贪心、动态规划、图论等内容,这3个议题每个议题都大有题目可出。
若是算法导论看不懂,你能够看本博客。
五、刷leetcode或cc150或编程艺术系列
如主要在国外找工做,推荐两个面试编程网站:一个是 http://leetcode.com/,leetcode是国外一网站,它上面有很多编程题;一个是http: //www.careercup.com/,然后这个网站的创始人写了本书,叫《careercup cracking coding interview》,最终这本英文书被图灵教育翻译出版为《程序员面试金典》。
若若是是国内找工做,则郑重推荐我编写的《程序员编程艺术》,有编程艺术博客版,以及在博客版本上精简优化的 编程艺术github版。除此以外,还可看看《编程之美》,与《剑指offer》。
而不管是准备国内仍是国外的海量数据处理面试题,此文必看: 教你如何迅速秒杀掉:99%的海量数据处理面试题。
后记
学习最忌心浮气躁,急功近利,即使练习了算法,也不必定表明能万无一失经过笔试面试关,由于整体说来,在通常的笔试面试中,70%基础+ 30%coding能力(含算法),故若是作到了上文中的5个步骤,还远远不够,最后,我推荐一份书单,以此为你们查漏补缺(没必要所有看完,欢迎你们补 充):
《深刻理解计算机系统》
W.Richard Stevens著的《TCP/IP详解三卷》,《UNIX网络编程二卷》,《UNIX环境高级编程:第2版》,详见此 豆瓣页面;
..
综上:上述所有过程短则半年,长则三年。最后一句:急功近利者必败,越想快速越要按部就班,踏实前进。