算法
jeanFlower
坚持学习
展开
-
判断一个无向图是否为二分图
要求:先设计算法,然后用程序实现。程序可允许输入一个无向图,然后自动判断是否为二分图注:一个图G=(V,E)是二分图如果存在V的一个划分V= XY,其中XY=空集。话不多说,直接上代码package test;import java.util.Scanner;public class graph { public static boolean find原创 2016-11-19 13:26:02 · 4461 阅读 · 0 评论 -
计算一个有向图所有的简单圈(除起点和终点外没有重复顶点的圈)
要求:先设计算法(可查文献),然后用程序实现。程序允许输入一个无向图,或从文件读入一个图,然后求出图的所有简单圈。*******************************************************************************package test;import java.util.ArrayList;import java.util.A原创 2016-11-19 13:45:52 · 3773 阅读 · 0 评论 -
欧式空间上旅行售货员问题 (TSP问题) 的2-近似算法。
注:欧式空间满足三角不等式。TSP问题:给定欧式空间上n个城市相互之间的距离dij, 1£i,j£n,求经过每个城市恰好一次的最短的环游。此问题是NP-困难的,设计求解精确解的多项式算法几乎是不可能的。2-近似算法:是指对所有的输入,算法求得的解不超过最优解的2-倍(最小化问题)。 算法提示:先求最小支撑树T,然后把T的每条边复制为两条,然原创 2016-11-19 14:17:48 · 7504 阅读 · 1 评论 -
实现Dijkstra’s算法(文件流输入图)
要求,输入一个包含有向图信息的文件txt(包含顶点信息和边信息)、两个顶点x,y,输出结果。输出想x到y的最短距离。package test;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.ut原创 2016-11-19 18:46:59 · 1159 阅读 · 0 评论 -
用动态规划求解调度问题
有n个工件,j1, j2, …, jn, 每个工件有一个给定的最小加工时间pj , 以及一个权重wj1j, 同样的结束时间Cj= sj + p(B),j∈B, 这里p(B)=max{pj} j∈B。 从一批工件开始加工到结束中间不允许中断。 请问:如何给这些工件分批,以及如何对这些批进行排序使得所有工件的加权完成时间之和 Σwj*Cj (j=1到n) 最小。 请设计一个原创 2016-11-19 18:55:23 · 5350 阅读 · 0 评论 -
Edmonds-Karp算法
最大流算法参考:http://www.cnblogs.com/jackge/archive/2013/05/05/3061893.htmlpackage test;import java.util.Arrays;import java.util.LinkedList;public class Edmonds_Karp_Test { public static void原创 2016-11-24 13:32:03 · 858 阅读 · 0 评论 -
最大子序列和问题
最大子序列和问题给定(可能有负的)整数,A1、A2,...,AN,求∑k=ijAk的最大值。(为方便起见,如果所有整数均为负数,则最大子序列和为0)。原创 2017-02-08 20:45:06 · 301 阅读 · 0 评论 -
判断一个数是否为素数
费马小定理 素数判定 蒙哥马利算法约定:x%y为x取模y,即x除以y所得的余数,当xx^y表示x的y次方。乘方运算的优先级高于乘除和取模,加减的优先级最低。见到x^y/z这样,就先算乘方,再算除法。A/B,称为A除以B,也称为B除A。若A%B=0,即称为A可以被B整除,也称B可以整除A。A*B表示A乘以B或称A乘B,B乘A,B乘以A……都TMD的一样,靠!复转载 2017-04-08 22:59:07 · 1087 阅读 · 0 评论 -
布隆过滤器Bloom Filter算法的Java实现(用于去重)
在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个 集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上;在网络爬虫里,一个网址是否被访问过等等。最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新 元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集合是用哈希表(ha转载 2017-07-14 11:07:03 · 897 阅读 · 0 评论