现在才真正体会到,要静下心来去默默的学,不去想他是否对我有用,这实在是太不容易了。
现在才知道,数学对于算法的学习是多么重要。
整理下大牛说的算法:
对于我这个技能点数约等于0的人来说,当然从基础开始看起。
下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.
1.最短路(Floyd、Dijstra,BellmanFord)
2.最小生成树(先写个prim,kruscal要用并查集,不好写)
3.大数(高精度)加减乘除
4.二分查找. (代码可在五行以内)
5.叉乘、判线段相交、然后写个凸包.
6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)
7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.
8. 调用系统的qsort, 技巧很多,慢慢掌握.
9. 任意进制间的转换
这些书是按照难易程度递进的顺序排放的:
Advanced Data Structures是MIT的高级数据结构教程,为什么会找到这个教程呢?因为GoogleAdvanced Data Structures第一个出来的就是这货。
这门课包含各种让本屌世界观崩坏的奇诡数据结构和算法,它们包括但不限于:
●带”记忆”的数据结构(Data Structure with Persistence)。
●van Emde Boas(逆天的插入,删除,前驱和后继时间复杂度)。
●o(1)时间复杂度的的LCA、RMQ和LA解法。
●o(lglgn)的BST。
MIT教授Erik Demaine则更为直接:
If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.
源于 原文链接:http://t.cn/8sBBEiC
这是下下个阶段要学习的 内容:
10大数据挖掘算法
排名 | 算法 | 简单说明 |
1 | C4.5 | 决策树分类 |
2 | K-means | k均值聚类 |
3 | Support Vector Machine(SVM) | 支持向量机分类 |
4 | Apriori | 关联规则挖掘 |
5 | Expectation Maximization(EM) | 最大期望算法 |
6 | PageRank | 链接分析 |
7 | AdaBoost | 集成算法 |
8 | K-Nearest Neighbors(KNN) | K近邻分类 |
9 | Naive Bayes | 朴素贝叶斯分类 |
10 | CART | 分类和回归 |