常见数据结构与算法汇总
1、常见数据结构
?
线性:数组,链表,队列,堆栈,块状数组(数组+链表) ,hash表,双端队列 ,位图(bitmap)
树:堆(大顶堆、小顶堆) ,trie树(字母树or字典树) ,后缀树,后缀树组 ,二叉排序/查找树,B+/B-,AVL树 ,Treap ,红黑树 ,splay树 ,线段树 ,树状数组
图:图
其它:并查集
?
2、常见算法
(1) ? ? ? 基本思想:枚举,递归,分治,模拟,贪心,动态规划,剪枝,回溯
(2) ? ? ? 图算法:深度优先遍历与广度优先遍历 , 最短路径,最小生成树,拓扑排序
(3) ? ? ? 字符串算法:字符串查找,hash算法,KMP算法,全组合与全排列
(4) ? ? ? 排序算法:冒泡,插入,选择,快排,归并排序,堆排序,桶排序
(5) ? ? ? 动态规划:背包问题 ,最长公共子序列,最优二分检索树
(6) ? ? ? 数论问题:素数问题 ,整数问题,进制转换,同余模运算,
(7) ? ? ? 排列组合:排列和组合算法
(8) ? ? ? 其它:LCA与RMQ问题
?
consistent hashing算法:分布式系统(如cache)负载均衡算法
http://tech.idv2.com/2008/07/24/memcached-004/#content_2_3
?
?