日期:2014-05-20  浏览次数:20681 次

怎样才算熟练掌握数据结构、常用算法?-总结
前久发了一个帖子(怎样才算熟练掌握数据结构、常用算法?)
好象发出了大家的心声,感兴趣的人比较多,相信很多人想从帖子里找到答案,
此帖子把比较好的几个总结出来方便大家学习.


 散分
  前20位都有分.


节约版
------------------------------------------------------
bigbug9002:
不可能都完全记住那么多的算法. 
常用算法,拿过来就可以写出来 
不常用的,拿起书来,看10分钟,就能理解算法(因为以前记过). 
对以前没有记过的算法,就不好说了,难的可能要研究好几天. 
这样就可以了. 

应该熟练掌握的常用的算法应该有: 
各种排序算法(插入排序、冒泡排序、选择排序,快速排序,堆排序,归并排序) 
线性表(一般的线性表,栈,队列)的插入和删除 
二叉树的遍历(前序,中序,后序) 
图的遍历(深度优先,广度优先) 
二分法查找,排序二叉树,Hash查找(处理冲突的方法)。 

个人观点.
------------------------------------------------------

***版
------------------------------------------------------
yeka
http://www.douban.com/review/2130819/ 

数据结构和算法是程序的根本——为什么?! 
2009-07-10 22:44:19   来自: BlueDavy (努力看书) 
编程之美--微软技术面试心得的评论  

  转自博客。 
   
  应该是差不多两个月前收到了这本书,一直到最近才抽出时间来看了下,这本书的开篇的第一题现在基本已经成了经典中的经典了,相信很多人都因为这个控制CPU使用率的题从而买了这本书的,在我自己看过这本书后我同时相信买了这本书的人应该会觉得非常的值得,要写出合理实现需求、高性能以及大数据量的程序,数据结构和算法就成为关键要素了,这本书用简短的题目给大家回顾了一些经典的算法。 
   
  首先,这本书以微软面试题吸引了众多人的梦想,毕竟微软的技术强这是毋庸置疑的,面试过不少的人,自己也觉得面试题真的是非常的难出,毕竟面试要求的是面试官在短短的几十分钟或一个小时内考察面试者是否符合公司的要求,在看《编程之美》序中看到邹欣因为面试一个进行过CPU压力测试的面试者时,想到了那道经典的控制CPU使用率的问题,从这道题我们可以看到考察面试人员对一项技术掌握是否精通的考评标准,我觉得和我之前写的那几篇关于如何考察面试者是否达到了精通的一些题是差不多同样的道理,毕竟精通这两个字不是随便就能达到的,从《编程之美》这本书中也看到了微软在考察面试者能力时的要求是非常高的,彻底颠覆了我对微软亚洲研究院这边的看法,:),另外从这本书列举的一些题目可以看出微软出的面试题的水准确实是相当高的,可以做到在短时间内充分的考察面试者在该方面的能力,我想这也是大部分面试官在出面试题时需要尽量达到的目标。 
   
  以上是从面试题的角度看这本书,接着来看看这本书的内容,估计现在书中的很多题目都已经成为了业界讨论的焦点话题了,像控制CPU使用率、双线程下载、数独游戏、24点、电梯调度、连连看等等一系列经典的题目,这些题目对于纠正目前很多业界从业人士对数据结构和算法不重视的看法应该是会有帮助的,当我在做中小型企业应用开发的时候,我也一直认为数据结构和算法即使不掌握也是没什么关系,而现在我也非常重视数据结构和算法了,现在在做面试的时候对于科班出身的同学,我会问问数据结构、算法的成绩,另外还有一个和书中同样的看法就是,数学非常重要,写程序和我们在学数学时解方程其实没有太大的差别,所以我认为数学学的好的人大部分是比较适合从事软件行业的,:),仅为个人看法,书中在数学方面也列举了不少经典的题目,像寻找发帖“水王”、寻找数组中的最大值和最小值等等。 
   
  总体而言,这本书并不是说要告诉大家面试微软的技巧,去死记硬背这些答案,那没有多少意义的,毕竟面试官更多的其实考察的是面试者的逻辑思维能力以及对相关知识的掌握程度,何况面试官通常都是会调整题目的,并不是说每次问的都是一样的,我想这本书能够给大家带来的最多的参考就是理解什么才是真正的精通,另外也给大家呈现了数据结构和算法为什么会是程序的根本,而对于要实现高性能以及海量数据处理的程序这些就更为关键了,因此个人觉得除了这本书之外,数据结构和算法相关的书即使不是科班出身的人也是应该仔细学习学习的。 
------------------------------------------------------


------解决方案--------------------
学习路很长,同志仍需努力。。。。。。。。。。
------解决方案--------------------
支持!!
------解决方案--------------------
pojXXXX 这些是什么东西的代号啊?
------解决方案--------------------
PKU Online Judge 北大ACM题库?
------解决方案--------------------
我认为主要还是多练和多思考!!! 加油楼主!!!
------解决方案--------------------
挺!
------解决方案--------------------
相对论的体现
------解决方案--------------------
暂时的项目是用不到什么算法了,什么时候用到什么时候再学吧·~
------解决方案--------------------
up
------解决方案--------------------
要多做多想
------解决方案--------------------
大学学的都快忘了
------解决方案--------------------
李开复的演讲:算法的力量

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时
要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、
技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理
论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算
法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位