ACM经验

熟练掌握数据结构、常用算法汇聚

(一)

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

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


(二)

分析一个东西,你可以用不同的眼光去看待,有很多时候,就跟自己生活一样,觉得小时候看待问

题很幼稚,现在看问题全面了,而且方式不一样了,为什么,就是成长吧,就跟这个一样的,你对算

法,比如写一个程序,可能直接写很简单,可是可以有一些有趣的方式,比如通过什么样来表达,怎

么样更高效..等等吧

(三)

于大学里把基本的专业课学扎实就ok,如:数据结构,离散,操作系统等。碰到一些基本的数

据结构和算法,如查找排序要根据原理马上能写出相应的代码就行了,我个人是这样理解的,

对于更深层次的东西,也是建立在自己熟练的基础之上的吧

(四)

算法与数据结构考验试题精析》第2版 机械工业出版社
如果你想练习的话,这里有N多的题可以来练习,但实际中能用到的比较少,除非搞一些高端的

玩意,不过平时也可以在自己的项目中结合使用

(五)

数据结构在平时可能用不上,但数据结构可以培养你程序时如果注意效率的意识,一个学过数

据结构的人和一个没有学过数结构的人写出来的程序可能在效率上有差别。

(六)

搞ACM需要的掌握的算法.
要注意,ACM的竞赛性强,因此自己应该和自己的实际应用联系起来.
适合自己的才是好的,有的人不适合搞算法,喜欢系统架构,因此不要看到别人什么就眼红,
发挥自己的长处,这才是重要的.

原文地址:https://www.cnblogs.com/leon916/p/2514212.html