Data Structure
paul08colin
这个作者很懒,什么都没留下…
展开
-
并查集(union-find set)hdoj/hdu 1232畅通工程
并查集(union-findset)是一种处理不相交集合(disjointsets)的合并、查找的数据结构,一般可用于表示一个图各连通分支结点的集合,用一棵树表示一个集合,每个集合里的结点都有一个共同的组先,比如当前结点为currentnode,则用whi原创 2011-01-20 16:35:00 · 757 阅读 · 0 评论 -
quicksort
今晚闲着,热热身,写了个快排。重新理解了一遍快排。快排的过程可以理解为一棵树,最乐观的情况是每次基准数放在中间,刚好二分这片数列,则树的高度为lg(n),树的每层有n个点,每个点访问一次,所以复杂度为n*lg(n);悲观情况是每片数列分为1,n-1,树高变成n,复杂度退化成n*原创 2011-09-26 22:06:55 · 283 阅读 · 0 评论 -
POJ 2104 划分树
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->原数列:8 9 1 4 78 56 4 10 7 5排序后:1 4 4 5 7 8 9 10 56 78划分树:(蓝色表示将要进入左子树)[8 9 1 4 78 56 4 10 7 5][1 4 4 7 5 ] [8 9原创 2011-12-08 14:05:11 · 327 阅读 · 0 评论 -
POj 2823 单调队列 / 优先队列
解法1: 单调队列所谓单调队列就是一个单调递增或递减的队列,并不是什么神奇的东西。单调队列(就递增来说)严格来说就是队头的原素是最大的,不断从队尾加原素,如果队尾的原素比要加入来的原素大,就不断退队,就到队尾的原素比要加入来的原素小或等于要加入来的原素。这题只要分别维护单调递增和单调递减的队列,每读入一个数就加入两个队列,然后从两个队头拿两个队顶原素出来,[L,R](L,R分别S原创 2011-12-25 19:57:40 · 1144 阅读 · 0 评论