计算机基础算法及数据结构综述

最近一直学习各种语言,研究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篇博文。我会把自己的体会和学习经历写下来供大家参阅,也希望各位朋友能多多指教,共同进步!



你可能感兴趣的:(Algorithm)