不知道是大家学的时候被误导,还是被部分书籍误导了。下面是关于“算法”一名词的解释:
https://en.wikipedia.org/wiki/Algorithmhttp://baike.baidu.com/link?url=VNoc5pXiMd4x6tZNYc4oZcitXLKJCwbrPpfnpBHR2sQW8EkCdNr-GvTlgkjciCQn9pk6j4ck5mu7s7adKq6OZUxkrL-H5gZq15JuVg_ndze事实上,关于比较常见的几种排序、树、时间复杂度的衡量方式,以及常见的集中排序、查找的时间复杂度我已经忘的差不多了。最近有两次面试还被人问道,起初还觉得比较惭愧;不过发现后来对方带着有色眼镜在看问题时,我就只能呵呵了。
“算法”大概可能还是分为两类:
1. 解决实际工程问题的一种方法或者步骤
2. 在已有的解决方法或步骤中,寻找一种更有效(性能更好)的方法和步骤
第一类是解决问题的思路和方法,第二类除了包括解决问题的思路和方法以外,还有一些数学的背景知识,或者一些额外的知识面。
首先我也不是科班出生,但数据结构也学过,不过当时在校期间也一笔带过(老实带着过,学生自己也不不知道为啥学,所以更加带过。)
但这不影响解决问题的实际情况,问题就是分两类:工程问题和科学问题。
工程问题更多强调的是如何寻求解决方案,并一点一点改造成符合实际场景的方案。
科学问题更多的强调理论知识储备和支撑。
哥们还是应该客观一点看,就像我一个老师说的一样:“考研这件事其实就是在考大家的英语,对于理工科学生来说,大家其他科目水平一般都差不多”,面试问‘算法’一样,谁能保证答得出来的人招进来后就一定能干活(可能是我身边例子太多了)?
说这么多,“算法”这玩意要看,我也正在一点点的抽时间去看,但也要注意一些工程问题的解决思路和方法。面试有时就是纸老虎,不必太过纠结。