>算法虐我千百遍,我待算法如初恋。 ##学习方法 1) 看源码 算法 2) 把所有经典算法写一遍 3) 加入算法学习社区,相互鼓励学习 4) 看经典书籍 ##基本数据结构和算法 这些算法全部自己敲一遍: 二叉树 二叉查找树 Trie树 后缀树 平衡二叉树AVL 红黑树 B树(B-),B+,B* R树 最优二叉树(赫夫曼树) 伸展树 二叉堆 二项树 二项堆 斐波那契堆(Fibonacci Heap) 哈希表/散列表 (Hash Table) 字符串算法: BF算法 KMP算法 BM算法 图的算法: 最小生成树 拓扑排序 关键路径 最短路径: Floyd,Dijkstra,bellman-ford,spfa 排序(八大排序): 快排 插入排序 : 希尔排序 选择排序 : 堆排序 归并排序 基数排序 查找算法 静态查找: 顺序表查找,有序表查找, 动态查找: 二叉排序树,AVL树,B- ,B+ 哈希表: 15个经典基础算法 A*. Dijkstra. DP .BFS/DFS. 红黑树. KMP .遗传算法. 启发式搜索. 图像特征提取SIFT sift算法 .傅立叶变换 .Hash. 快速排序 .SPFA. 快递选择SELECT @ July 《数学建模十大经典算法》 《数据挖掘领域十大经典算法》 《十道海量数据处理面试题》 《数字图像处理领域的二十四个经典算法》 《精选微软等公司经典的算法面试100题》 ## 算法设计思想 为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。 迭代法 穷举搜索法 递推法 动态规划 贪心算法 回溯 分治算法 http://www.chinaunix.net/old_jh/23/437639.html ## 后续阅读 《算法导论》 《编程珠玑》 《编程之美》 《剑指offer》 《深入理解计算机系统》 《TCP/IP详解三卷》 《UNIX网络编程二卷》 《UNIX环境高级编程:第2版》 ## 参考链接和学习网站 微软面试100题 http://blog.csdn.net/column/details/ms100.html 程序员编程艺术 http://blog.csdn.net/v_JULY_v/article/details/6460494 https://github.com/julycoding/The-Art-Of-Programming-By-July 算法题集合 https://github.com/activesys/libcstl 通用数据结构和算法库 https://github.com/nonstriater/Learn-Algorithm 算法小组 贝叶斯: 1. 阮一峰总结的这两篇《贝叶斯推断及其互联网应用》 http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_two.html 2. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 3. 朴素贝叶斯(NB,Naive Bayes)简介 http://home.cnblogs.com/group/topic/40112.html 4. 数学之美番外篇:平凡而又神奇的贝叶斯方法 http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/ 这4部分看完后,就能自己推贝叶斯、朴素贝叶斯,还能了解各种常见概率、集合论等,实际上对应用贝叶斯已经可以打好基础了。 MYSQL 背后的数据结构和算法 http://blogread.cn/it/article/4088?f=wb2 算法演示: http://sjjg.js.zwu.edu.cn/SFXX/sf1/sfys.html http://www.cs.usfca.edu/~galles/visualization/Algorithms.html 编程网站: http://leetcode.com/ http://oj.leetcode.com/