「最短路径算法java」最短路径算法例题
本篇文章给大家谈谈最短路径算法java,以及最短路径算法例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求最短路径算法
- 2、用java语言求最短路径
- 3、JAVA中最短路径算法
- 4、有什么无权无向图的最短路径算法比较好,求一个用java实现的
- 5、求大佬用java帮我实现dijkstra算法,单源最短路径
求最短路径算法
import java.awt.*;
import java.util.HashSet;
import java.util.Random;
class example2 {
private static Point[] mTestPoints;
//已知平面上N点坐标,求遍历所有点的最短路径.
public static void main(String[] args) {
//两点之间的距离 d=√(a^2+b^2) 其中a=|x1 –x2|;b=|y1 - y2|
//都是简单的正相关函数,距离最短那么需要a+b最小
//n个点需要求C(n,2)次
//其实java提供了两点之间距离的Api咱们直接使用即可
generateTestPoints();
double minDistance = Double.MAX_VALUE;
for (int i = 0; i mTestPoints.length; i++) {
//两两计算,数组中每个点只跟后面的点求距离
for (int j = i + 1; j mTestPoints.length; j++) {
double distance = mTestPoints[i].distance(mTestPoints[j]);
if (distance minDistance) {
minDistance = distance;
}
}
}
//得到结果
System.out.println("最短距离为:" + minDistance);
}
private static void generateTestPoints() {
//随机生成10个点的集合,为了去重使用hashSet
Random random = new Random();
HashSetPoint mPointSet = new HashSet();
for (int i = 0; i 10; i++) {
boolean add = mPointSet.add(new Point(random.nextInt(100), random.nextInt(100)));
if (!add) {
--i;
}
}
mTestPoints = mPointSet.toArray(new Point[10]);
}
}
用java语言求最短路径
最短路径就是敲代码。 这个东西行业公认,没有比敲代码学语言更加快的路了。
如果是单纯感兴趣可以买两本书自学 什么thinkinjava之类的,开始肯定看不懂的,谁开始都看不懂,摸索着来,时间长了就理解了。如果有其它语言基础学起来就快多了,因为语言这种东西,除了语法不一样,逻辑都是一样的。
如果是工作需要什么的,可以找个培训啥的。当然前提你有钱。
最后顺带吐个槽,捷径好找的话,程序员这工作就不值钱了。
JAVA中最短路径算法
给你个算graph上最短路径的比较流行的方法
Algorithm Dijkstra(V, E, cost, s)
T ;
Cost(V[s]) 0
Prev(V[s]) none
for i 0 to length[V] - 1 do
if (i 6= s) then
Cost(V[i]) +1
Prev(V[i]) none
Build heap NotInTree from V
for i 1 to length[V] do
u DeleteMin(NotInTree)
add (u, Prev(u)) to T
for each neighbor v of u do
if (Cost(v) Cost(u) + cost(u,v)) then
Cost(v) Cost(u) + cost(u,v)
Prev(v) u
return T
有什么无权无向图的最短路径算法比较好,求一个用java实现的
有什么无权无向图的最短路径算法比较好
带权图也分有向和无向两种,基本的算法可以看看书咯。 带权的无向图的最短路径又叫最小生成树,Prim算法和Kruskal算法; 带权的有向图的最短路径算法有迪杰斯特拉算法和佛洛依德算法;
String[] s={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
System.out.print("请输入数字(1-12):");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
int m=Integer.parseInt(str);
if (m=0||m=13)
{
求大佬用java帮我实现dijkstra算法,单源最短路径
import heapq
from collections import defaultdict
edges = [["A","B"],["A","D"],["A","E"],["B","C"],["C","E"],["D","E"],["D","C"]]
dist = [10,30,100,50,10,60,20]
res = []
def dijkstra(e,dist,start,end):
hm = defaultdict(list)
for i in range(len(e)):
hm[e[i][0]].append((e[i][1],dist[i]))
r = {}
r
本篇文章给大家谈谈最短路径算法java,以及最短路径算法例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
= 0q = [(0,start,
本篇文章给大家谈谈最短路径算法java,以及最短路径算法例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
)]while q:
dis,node,res = heapq.heappop(q)
if node == end:
return dis,res
for u,v in hm[node]:
t = dis+v
if u not in r or t r[u]:
r[u] = t
heapq.heappush(q,(t,u,res+[u]))
return 0,[]
dijkstra(edges,dist,"A","E")
最短路径算法java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于最短路径算法例题、最短路径算法java的信息别忘了在本站进行查找喔。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。