算法&数据结构
文章平均质量分 73
zhouhong1026
这个作者很懒,什么都没留下…
展开
-
prim算法两种实现方法
顶点为:A,B,C,D,E,F 具体顶点的组成结构可以参考:数据结构(严蔚敏版)的图第一种:贪心法#include #define N 6#define M 9999 //代表不可达//初始图N=(V,{E})TanXinPrim(){ // int Matrix[N][N]; int i,j,count;//count用于记录T中的顶点个数,c原创 2012-07-29 17:03:16 · 628 阅读 · 0 评论 -
基于FP-tree的关联规则挖掘FP-growth算法基本思想
算法分析: 转载地址:http://hi.baidu.com/shirdrn/blog/category/Data%20Minning 在挖掘关联规则的过程中,无可避免要处理海量的数据,也就是事务数据库如此之大,如果采用Apriori算法来挖掘,每次生成频繁k-项集的时候,可能都需要扫描事务数据库一遍,这是非常耗时的操作。那么,可以想尽办法来减少扫描事务数据库的次数,来改进挖掘频繁关联转载 2012-09-09 23:39:02 · 3250 阅读 · 0 评论 -
Apriori算法实现(java)
package AprioriTest;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;转载 2012-09-09 23:34:51 · 10260 阅读 · 4 评论 -
挖掘关联规则之Apriori算法详解
1. 挖掘关联规则1.1 什么是关联规则一言蔽之,关联规则是形如X→Y的蕴涵式,表示通过X可以推导“得到”Y,其中X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS)1.2 如何量化关联规则关联规则挖掘的一个典型例子便是购物车分析。通过关联规则挖掘能够发现顾客放入转载 2012-09-09 23:37:35 · 12230 阅读 · 1 评论 -
排序汇总 (java实现)
package com.szu.edu.sort;import java.util.Random;/** * 作者:zhouhong * 时间:2012.08.26 * 排序测试类 排序算法的分类如下: * 1.插入排序(直接插入排序、折半插入排序、希尔排序); * 2.交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序);转载 2012-08-28 00:45:44 · 555 阅读 · 0 评论 -
贪心算法
顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。问题一、活动安排问题问原创 2012-08-25 23:10:39 · 727 阅读 · 0 评论 -
hdoj1233 还是畅通工程
题目:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1009&cid=5825&hide=0 AC代码(C++):#include #include #include #include #define N 121#define M 10000using namespace std;typedef原创 2012-08-24 18:21:28 · 633 阅读 · 0 评论 -
最小生成树实现(kruskal+并查集)续
题目:(和上篇的那个题目差不多,不过里用到了路径压缩,所以效率更高。还有就是数据后面输入的,所以,更上篇的那个题目还是有区别。)输入数据:具体实现代码(C++):#include #include #include #include using namespace std;#define MAX 100//定义边(x,y),权值为Wtypedef s原创 2012-08-24 16:08:29 · 890 阅读 · 3 评论 -
最小生成树(kruskal+并查集实现)
题目大意如下:求上图中带权图的最小生成树?具体实现(C++):#include #include #include #define M 9999#define N 6using namespace std;int set[N] = {0,1,2,3,4,5};int edge[N][N] = {{0,6,1,5,M,M},{6,0,5,M,3,M},{原创 2012-08-24 15:48:05 · 684 阅读 · 0 评论 -
hdoj 1272 小希的迷宫
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1272关键点:1.特别小心输入的格式,这个比较纠结。2.题目的最关键点:(1).所有点的根节点都相同(即下面的count=1),(2).输入路径不存在回来,这里用flag来标记回来(即构成回路,flag=1)3.注意find3(int x)这里用路径压缩的话,速度会快很多(用空间来换原创 2012-08-23 23:40:08 · 787 阅读 · 0 评论 -
丢手帕问题 (java实现)
/** *@author zhouhong *@fuction:丢手帕问题 */package com.zhouhong10;import com.zhouhong10.*;public class Work01 { /** * @param args */ public static void main(String[] args) { // T原创 2012-08-23 20:35:31 · 2043 阅读 · 0 评论 -
HDOJ-1232(并查集)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1232AC代码:#include int v[1002];//定义全局变量,v[i]代表城镇。int find(int x){ int r = x; while(r != v[r]) r = v[r]; return r;//返回x所在的集合。原创 2012-08-23 20:42:35 · 994 阅读 · 0 评论 -
动态规划——矩阵连乘的问题
《问题的引出》(《算法设计与分析》,王晓东编著,清华大学出版社2008年1月第2版。)看下面一个例子,计算三个矩阵连乘{A1,A2,A3};维数分别为10*100 , 100*5 , 5*50按此顺序计算需要的次数((A1*A2)*A3):10X100X5+10X5X50=7500次按此顺序计算需要的次数(A1*(A2*A3)):10X5X50+10X100X50=75000次所以原创 2012-08-20 16:05:48 · 1292 阅读 · 0 评论 -
动态规划 (1) HDU 动态规划题集
无法考证原作者是谁,故不注明转载位置1.Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i转载 2012-08-20 15:43:45 · 789 阅读 · 0 评论 -
并查集(不相交集合)基础知识详解
并查集(不相交集合) 文章作者:ktyanny 文章来源:ktyanny 转载请注明,谢谢合作。 早上早早起来看Kruscal的MST算法,原来要用到不相交集合来实现。拿起《算法导论》看完不相交集合这章,顿然茅塞顿开,终于完成并查集的基础知识的学习。《算法导论》真是牛×× 不相交集合有两种不同的实现,链表表示和带路径压缩的按秩合并策略。看到大家都比较喜欢用带路径压缩的按秩转载 2012-07-31 20:19:20 · 1446 阅读 · 0 评论 -
并查集算法
/*并查集的基本应用——POJ1611*//************************************************************************大致题意:一共有n个学生(编号0 至 n-1),m个组,一个学生可以同时加入不同的组。现在有一种传染病,如果一个学生被感染,那么和他同组的学生都会被感染。现在已知0号学生被感染,问一共有多少个原创 2012-07-31 20:18:14 · 509 阅读 · 0 评论 -
continue 和break语句的区别
C语言中continue和break语句的区别2012-07-30 1. continue语句一般形式为:continue;其作用为结束本次循环,即跳过循环体剩下的语句,接着进入下一次是否执行循环的判定。2.break语句一般形式为:break;其作用为使流程从循环体内跳出,接着执行循环体之外的下一语句。 区别:continue语句只结束本次循环,而原创 2012-07-30 14:59:49 · 1001 阅读 · 1 评论 -
Kruskal算法的实现
顶点为:A,B,C,D,E,F;图请见:数据结构(严蔚敏版)#include #define M 999 //M代表不可达#define N 6kruskal(){ //初始化数据 int edge[N][N]={{M,6,1,5,M,M},{6,M,5,M,3,M}, {1,5,M,5,6,4},{5,M,5,M,M,2},{M,3,6,M,M原创 2012-07-29 17:13:38 · 531 阅读 · 0 评论 -
FPGrowth算法实现
算法分析:http://ikeycn.iteye.com/blog/700740 算法实现: /** * FPGrowth算法的主要思想: * 1. 构造频繁1项集:遍历初始数据集构造频繁1项集,并作为项头表,建立将指向fpTree节点对应元素的引用 * 2. 构造FPTree:再次遍历初始数据集,对于每一条事务中的元素,根据频繁1项集中元素的顺序排序, * 由此建立FPT转载 2012-09-09 23:42:31 · 4177 阅读 · 1 评论