当前位置: 首页 > news >正文

后台网站手机版视频怎么做前端培训找不到工作的多吗

后台网站手机版视频怎么做,前端培训找不到工作的多吗,计算机网络学什么内容,网站seo优化课程实验三 贪心算法 迪杰斯特拉的贪心算法实现 优先队列等 1.实验目的 1、掌握贪心算法的基本要素 :最优子结构性质和贪心选择性质 2、应用优先队列求单源顶点的最短路径Dijkstra算法,掌握贪心算法。 2.实验环境 Java 3.问题描述 给定带权有向图G (V…

实验三  贪心算法

迪杰斯特拉的贪心算法实现

优先队列等

1.实验目的

1、掌握贪心算法的基本要素 :最优子结构性质和贪心选择性质

2、应用优先队列求单源顶点的最短路径Dijkstra算法,掌握贪心算法。

2.实验环境

Java

3.问题描述

给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。

4.复杂度分析

 Dijkstra算法的时间复杂度为O((m+n)logn),其中m是边的数量,n是顶点的数量。

5.代码实现

package shiyan3_3;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.PriorityQueue;
import java.util.stream.Collectors;public class DijkstraAlgorithm {public static void main(String[] args) throws IOException {runDijkstraAlgorithm("input.txt", "output.txt");}private static class Result {int dist;List<Integer> path;public Result(int dist, List<Integer> path) {this.dist = dist;this.path = path;}}public static void runDijkstraAlgorithm(String inputFile, String outputFile) throws IOException {BufferedReader reader = new BufferedReader(new FileReader(inputFile));String[] input = reader.readLine().split(" ");int n = Integer.parseInt(input[0]);int m = Integer.parseInt(input[1]);List<Edge>[] graph = new List[n + 1];for (int i = 1; i <= n; i++) {graph[i] = new ArrayList<>();}for (int i = 0; i < m; i++) {input = reader.readLine().split(" ");int u = Integer.parseInt(input[0]);int v = Integer.parseInt(input[1]);int w = Integer.parseInt(input[2]);graph[u].add(new Edge(v, w));}reader.close();int s = 1;Result[] results = new Result[n + 1];PriorityQueue<Node> pq = new PriorityQueue<>();for (int i = 1; i <= n; i++) {if (i == s) continue;int[] dist = new int[n + 1];int[] pre = new int[n + 1];Arrays.fill(dist, Integer.MAX_VALUE);Arrays.fill(pre, -1);dist[s] = 0;pq.offer(new Node(s, 0));while (!pq.isEmpty()) {Node curr = pq.poll();if (curr.dist != dist[curr.u]) continue;for (Edge edge : graph[curr.u]) {int v = edge.v;int weight = edge.weight;if (dist[v] > dist[curr.u] + weight) {dist[v] = dist[curr.u] + weight;pre[v] = curr.u;pq.offer(new Node(v, dist[v]));}}}List<Integer> path = new ArrayList<>();if (pre[i] != -1) getPath(i, pre, path);if (path.size() > 0) path.add(0, s);results[i] = new Result(dist[i], path);}PrintWriter writer = new PrintWriter(new FileWriter(outputFile));writer.println("起点\t终点\t最短路径\t\t\t最短路径长度");for (int i = 1; i <= n; i++) {if (i == s) continue;String res = s + "\t" + i + "\t";if (results[i] == null || results[i].path.size() == 0) {res += "NA\t\t\tNA";} else {String path = results[i].path.stream().map(Object::toString).collect(Collectors.joining("->"));int padding = 32 - path.length();if (padding > 0) path += String.format("%" + padding + "s", "");res += path + "\t" + results[i].dist;}writer.println(res);}writer.close();System.out.println("输出成功!");}private static void getPath(int u, int[] pre, List<Integer> path) {if (u == -1) return;getPath(pre[u], pre, path);path.add(u);}private static class Node implements Comparable<Node> {int u;int dist;public Node(int u, int dist) {this.u = u;this.dist = dist;}@Overridepublic int compareTo(Node other) {return Integer.compare(this.dist, other.dist);}}private static class Edge {int v;int weight;public Edge(int v, int weight) {this.v = v;this.weight = weight;}}
}

输入 

运行

 输出

http://www.yayakq.cn/news/505867/

相关文章:

  • 没学过计算机开始学做网站深圳市富通建设工程有限公司网站
  • 网站的标志是什么字体可用的ftp网站
  • 邢台哪里有做网站的wordpress主机搬家
  • 昆明网站做的好的公司哪家好wordpress系统和插件下载
  • 可以做私募股权投资的网站腾讯云wordpress建站教程
  • 国外视觉差网站海口建站平台
  • pr免费模板网站石家庄网站搭建公司
  • 注册商标费用多少钱绍兴seo管理
  • 本地常州微信网站建设dedecms 手机网站
  • 长沙需要做网站的企业wordpress获取热门文章
  • php网站插件删除或添加网站开发笔试题
  • 网站搜索 收录优化长沙网络推广外包
  • 网站开发流程图和新的网站建设技术方案
  • 风景区网站建设项目建设可行性南昌地宝网分类
  • 英语门户网站织梦源码网络营销服务有哪些
  • 成都市建设网扬尘监控网站学ui设计一般多少钱
  • 创建网站appwordpress被改密码忘记
  • 做网站需要提供什么条件新乡seo顾问
  • 中国交通建设网站智能云建站
  • 零起飞网站建设工作室网络营销概念是什么
  • 郑州电商网站开发wordpress原生app
  • 什么网站可以接单做h5电子商务网站
  • 国外常用视频网站tenor怎么设置网站会员注册系统下载
  • 微信公众号微网站 建设报价表网站建设专业名词解释网站
  • 昌乐营销型网站建设wordpress 用什么编辑器
  • 如何做个购物网站学校网站查询学历
  • ASP做旅游网站代码怎样做理财投资网站
  • 网站查询地址做网站跟网站设计的区别
  • 微信小程序源码网站黑龙江住房建设部网站
  • 镇江网站建设联系思创网站做关键词排名每天要做什么