「最短路径算法java」最短路径算法例题

博主:adminadmin 2022-11-22 11:45:08 57

本篇文章给大家谈谈最短路径算法java,以及最短路径算法例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求最短路径算法

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,以及最短路径算法例题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

= 0

  q = [(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的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。