3.3 KiB
算法虐我千百遍,我待算法如初恋。
##学习方法
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 算法小组
贝叶斯:
- 阮一峰总结的这两篇《贝叶斯推断及其互联网应用》 http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_two.html
- 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
- 朴素贝叶斯(NB,Naive Bayes)简介 http://home.cnblogs.com/group/topic/40112.html
- 数学之美番外篇:平凡而又神奇的贝叶斯方法 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
编程网站: