算法
Shipshape.
这个作者很懒,什么都没留下…
展开
-
回溯法解决工作分配问题
回溯法解决工作分配问题问题描述:设有n件工作分配给n个人。为第i个人分配工作j所需的费用为c[i][j] 。试设计一个算法,计算最佳工作分配方案,为每一个人都分配1 件不同的工作,并使总费用达到最小。代码块如下:package suanfa;import java.util.Scanner;public class 工作分配问题回溯法 {static int n,cost=0; ...原创 2019-07-02 10:09:02 · 2931 阅读 · 1 评论 -
活动安排问题贪心算法
问题描述:设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一个资源(如演讲会场),而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间Si和一个结束时间Fi,且Si<Fi。如果选择了活动i,则他在改时间区间[Si,Fi]内占用资源,若区间[Si,Fi] 和区间[Sj,Fj]不相交,则称活动i与活动j是相容的。活动安排问题是要求在所给的活动集...原创 2019-07-23 22:25:11 · 605 阅读 · 0 评论 -
最长公共子序列动态规划
问题描述;给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA源代码:public class 最长公共子序列 {private static void LCSLength(int m,int n,char X[],cha...原创 2019-07-23 22:41:39 · 984 阅读 · 0 评论 -
石子合并问题动态规划
问题描述:有 n 堆石子堆放在路边围成一个圆,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量。求将这 N 堆石子合并成一堆的总花费(最小或最大)。源代码:package suanfa;public class 石子合并 {public static int sum(int x[],int i,int j) { int sum=0; f...原创 2019-07-23 22:38:47 · 1480 阅读 · 0 评论 -
全排列及去重全排列问题
问题描述:将数据的所有排列情况排列出来,源代码:import java.util.Scanner;public class 全排列{public static void px(char a[],int k,int m) {if(k==m) {//只剩下一个元素,直接打印输出for(char x:a)System.out.print(x+" ");System.out.pr...原创 2019-07-23 22:35:30 · 423 阅读 · 0 评论 -
批处理作业调度回溯法
问题描述:给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。例:设n=3,考虑以下实例:这3个作业...原创 2019-07-23 22:32:45 · 1327 阅读 · 0 评论 -
快速排序
源代码:package suanfa;public class 快速排序 {public static int 交换次数=0;static void quicksort(int a[],int p,int r) {if(p<r)//子序列长度大于等于2,子问题仍存在,继续调用{int q=partition(a,p,r);//获得基准元素下标,同时基准左侧<基准,基准右侧...原创 2019-07-23 22:26:50 · 92 阅读 · 0 评论 -
回溯法01背包问题
问题描述:给定n种物品和一背包。物品i的重量是wi>0,其价值为vi>0,背包的容量为c。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?package suanfa;public class 回溯法01背包{private static int[] p;//物品的价值数组private static int[] w;//物品的重量数组private stat...原创 2019-07-23 22:19:51 · 962 阅读 · 0 评论 -
单源最短路径问题Dijkstra算法
这里写自定义目录标题问题描述给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数。另外,还给定 V 中的一个顶点,称为源。现在我们要计算从源到所有其他各顶点的最短路径长度。这里的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。Dijkstra算法的解决方案Dijkstra提出按各顶点与源点v间的路径长度的递增次序,生成到各顶点的最短路径的算法。既先求出长度最短的一条...原创 2019-07-23 22:13:22 · 721 阅读 · 0 评论 -
流水作业调度johnson法则
问题描述:n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。源代码:public class 流水作业调度 { public ...原创 2019-07-23 22:29:03 · 1431 阅读 · 0 评论