自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 MST的Prim算法和Kruskal算法

最小生成树MST是图论中的基本算法。一般使用Prim算法或者Kruskal算法解决。这两类算法都是贪心算法,Prim算法是基于点的,而Kruskal算法是基于边的。假设无向带权图G(V,E,W),Prim的算法流程大致如下:令R、Q为顶点的集合,初始R为空集,Q为V循环:    从Q中取出点v,满足v到R的距离比Q中其他点都要近,将v加入R    (所谓v到R的距离,就是v

2014-05-29 21:03:33 2615

原创 单源最短路径的SPFA算法

SPFA算法用于求单源最短路径,是Bellman-Ford算法的队列优化。尽管有人指出该算法O(E)的复杂度的理论证明是错误的,且在特别针对的图上,SPFA算法非常慢。而Dijkstra算法的理论证明严谨,表现也十分稳定。但是Dijkstra算法不能用于负权值的图,而Bellman-Ford算法效率又十分的低。所以仍然有很多人倾向于使用SPFA算法(SPFA实现比较简单,有人认为比Dijk...

2014-05-28 17:56:41 999

原创 伸展树应用初步——解决区间问题

伸展树的基本操作就是伸展,也就是将指定节点旋转至树根(同时不改变排序二叉树的性质)。在这个操作的基础上,配合节点中保存额外的数据域,伸展树可以完成多种任务,包括各种区间问题。    伸展树的节点除了保存必要的指针信息和键值对之外,经常使用的额外的数据域包括size域、sum域、极值域等等。size域用于记录该节点所代表的子树的节点总数,可以用于解决区间kth数问题;sum域用于记录该节点所代表

2014-05-09 21:44:42 2628

原创 伸展树的旋转和伸展操作

伸展树(Splay Tree)是一种排序二叉树,其核心操作是伸展。所谓伸展就是把指定节点旋转至树根(同时保持排序二叉树性质)的过程。而伸展操作的基础就是旋转。    旋转是所有排序二叉树的基本操作,各种平衡二叉树想要维持其平衡性质都离不开旋转。旋转分为左旋和右旋。但实际上,如果指定节点为左儿子,那么它只能右旋;如果指定节点为右儿子,那么它只能左旋。所以如何旋转可以看作是节点本身的一种性质,而非

2014-05-08 09:37:39 3894

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除