![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
Aaron_Liu0730
学学学,一个刚入行的Java程序员
展开
-
算法设计与分析:单源最短路径问题(Java)
运用分支限界法。分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。单源最短路径问题:import java.util.Arrays;import java.util.Collections;import java.util.LinkedList;import java.util.Scanner;/** * * @author 刘宁宁 */public class BBShortest {static float[][] a; // 图G的邻接矩原创 2021-11-18 19:04:03 · 1524 阅读 · 0 评论 -
算法设计与分析:图的m着色问题、旅行销售员问题与单源最短路径(C/C++/Java)
回溯法求问题的一个解时,只要搜索到问题的一个解就可结束。这种以深度优先方式系统搜索问题解的算法称为回溯法,它适用于求解组合数较大的问题。C/C++:图的m着色问题:#include <iostream>#define Max 15using namespace std;int vertexCount=0;int color[Max]={0};int arc[Max][Max]={0};int visited[Max]={0};void init(){cout&l原创 2021-11-18 18:57:40 · 483 阅读 · 0 评论 -
算法设计与分析:子集合问题与N后问题(Java)
回溯法求问题的一个解时,只要搜索到问题的一个解就可结束。这种以深度优先方式系统搜索问题解的算法称为回溯法,它适用于求解组合数较大的问题。子集合问题:import java.util.Scanner;/** * * @author 刘宁宁 */public class Subsets { static int sum = 0; static int c = 0; //和的值 static int n = 0; static int[] arr; static int[] tem原创 2021-11-18 18:42:57 · 131 阅读 · 0 评论 -
算法设计与分析:最小生成树(kruskal),子集树与装载问题(Java)
主要是贪心算法的应用最小生成树(kruskal)import java.util.Scanner;public class MinimumSpanningTreeKruskal { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入结点个数:"); int n = s.nextInt();原创 2021-11-18 11:53:45 · 240 阅读 · 0 评论 -
算法设计与分析:单源最短路径(Dijkstra),最小生成树(C/C++/Java)
C/C++:单源最短路径:#include <stdio.h> #define M 65535 //无穷大#define N 5 //顶点数 //Dijkstra算法函数,求给定顶点到其余各点的最短路径//参数:邻接矩阵、出发点的下标、结果数组、路径前一点记录void Dijkstra(int Cost[][N], int v0, int Distance[], int prev[]){ int s[N]; int mindis,dis; int原创 2021-11-18 11:35:33 · 882 阅读 · 0 评论 -
算法设计与分析:运用贪心算法来实现哈夫曼的编码与解码(C/C++/Java)
C/C++:#include<stdio.h>#include<stdlib.h>//----------------------定义结点数据---------------#define N_LEAVE 26 //N个权值,则有N个叶结点,树共2N-1个结点#define N_NODE (26*2-1)typedef struct _Node{ char character; float weight; int lchild; int rchild;原创 2021-11-18 11:25:53 · 1557 阅读 · 0 评论 -
算法设计与分析:背包问题、活动安排(C/C++/Java)
运用贪心算法来解决背包问题和活动安排问题。C/C++:活动安排:#include<stdio.h>typedef struct{ int id; // 活动编号 int start; // 开始时间 int end; // 结束时间 int YorN; // 是否被选择,0 否, 1 是} activity, *Pactivity ;void merge(activity c[], activity原创 2021-11-18 11:21:19 · 726 阅读 · 0 评论 -
算法设计与分析:0-1背包问题,最优搜索二叉树(C/C++/Java)
Java:0-1背包问题(采用递推和动态规划):import java.util.Scanner;public class Package01 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入背包容量"); int A = s.nextInt(); System.out.原创 2021-11-15 15:00:34 · 535 阅读 · 0 评论 -
算法设计与分析:流水线问题和最长公共子序列(Java)
最长公共子序列问题采用了递归、备忘录和动态规划来解决,流水作业问题用了Johnsonjava:最长公共子序列:import java.util.Arrays;import java.util.Scanner;public class LongestCommonSubseq { static int[][] b = null; static int[][] c = null; static int[][] c1 = null; public static原创 2021-11-14 13:24:10 · 345 阅读 · 0 评论 -
算法设计与分析:矩阵连乘和币值最大问题(C/C++/Java)
Java:矩阵连乘:import java.util.Date;import java.util.Scanner;public class MatrixMultiplication { static int[][] s1 = null; static int[][] s2 = null; static int[][] s3 = null; static int[][] m1 = null; static int[][] m2 = null;原创 2021-11-14 12:59:23 · 778 阅读 · 0 评论