最近一直学习各种语言,研究java和C++的特性。今天偶尔和朋友聊天谈到算法设计,心里顿时感觉算法忘记的差不多了。一番酝酿后决定捧回《算法导论》,边学习边把各种算法写下来。感觉还是写下来的东西觉得深刻,而且就算忘记了,以后还可以随时查看。
计算机领域的基础算法分为几大类:
1.排序----->最基础
有插入排序,归并排序,堆排序,快速排序,还有线性排序。
2.贪心算法(greedy algorithm)----->特别重要
3.动态规划------>特别重要
4.图算法:深度优先搜索,广度优先搜索,最小生成数算法,最短路径算法(Bellman-ford, Dijkstra, Floyd-Warshall),最大流算法(Ford-Fulkerson, 最大二分匹配算法)
5.字符串匹配算法
6.NPC问题研究及相关近似算法
基础数据结构有:(这里的基础不是简单的意思,可没人说是简单!)
1.栈和队列,链表等线性数据结构
2.散列表
3.二叉搜索树
4.红黑数
5.B数
6.斐波那契堆
7.van Emde Boas树
8.集合
9.各种变种树结构
给自己定的目标是在这一年内,要全部熟练掌握,尽量每种算法和数据结构都有至少1篇博文。我会把自己的体会和学习经历写下来供大家参阅,也希望各位朋友能多多指教,共同进步!