
算法系列
hello_ljfbest
左手程序,右手写诗……
展开
-
并查集详解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程 http://acm.hdu.edu.c原创 2011-07-29 09:07:05 · 2576 阅读 · 1 评论 -
KMP算法
“看毛片”算法一直纠结了好长时间,这次又硬着头皮啃了起来,看了 Matrix67 豁然开朗…… 下面这些内容引自 http://www.matrix67.com/blog/archives/115我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包原创 2013-10-22 14:23:27 · 1286 阅读 · 0 评论 -
二叉堆与堆排序
二叉堆是一棵完全二叉树,分为大/小根堆,大根堆每个节点的值都不大于其父节点的值,所以最大值一定在堆顶。在堆排序中和优先队列中可以发挥作用建堆:堆排序,要先建立一个堆,在建堆的过程中要根据每个节点的值都不大于其父节点的值而建立。由于所有叶子节点都已经是堆了,所以调整堆的过程从最后一个非叶子节点开始,假设数组a[n]表示此堆,那么要从n/2-1节点开始,依次向上直到根节点。在一个节点时,如果此原创 2013-10-23 10:05:58 · 1034 阅读 · 0 评论 -
快排
快排就是先找一个数为基准,把所有比这个数大的放在基准的右边,比这个数小的放在左边,这样基准的位置定下了;然后再对基准两边的数进行相同的操作hdu 1040 As Easy As A+Bimport java.io.BufferedInputStream;import java.util.Scanner;import static java.lang.System.out;原创 2013-10-23 10:41:14 · 986 阅读 · 0 评论 -
欧拉图
http://zh.wikipedia.org/wiki/%E4%B8%80%E7%AC%94%E7%94%BB%E9%97%AE%E9%A2%98对于一个给定的连通图,怎样判断是否存在着一个恰好包含了所有的边,并且没有重复的路径?这就是一笔画问题。用图论的术语来说,就是判断这个图是否是一个能够遍历完所有的边而没有重复,这样的图现称为欧拉图。这时遍历的路径称作欧拉路径(一个环或者一条链原创 2013-10-23 15:58:50 · 2062 阅读 · 0 评论 -
红黑树
红黑树的旋转(左旋与右旋)当在红黑树上进行插入和删除操作时,对树做了修改,结果可能会违反红黑树的那五条性质。为了保持这些性质,就要改变树中某些结点的颜色和指针结构。指针结构的修改时通过旋转来完成的,这是一种能保持二叉查找树性质的查找树局部操作:即左旋和右旋:具体的操作效果如下所示:原创 2013-11-01 14:55:24 · 964 阅读 · 0 评论