由起点遍历最近点,再把该最近点看作一个新的起点去计算到终点的最小代价,以此类推通过迭代算出,最后返回最优方案和总代价。
点与点之间的代价也就是连线由数组来描述
如:distance[0][3]=1表示0点到3点距离为1
代码:
import java.util.Scanner;
class ShortDis
{
int[][] distance={ //记录点与点之间的距离,0表示自已或两点之间没有直接边线
{0,2,4,1,0,0,4,0},
{2,0,1,0,3,0,0,0},
{4,1,0,0,5,6,0,0},
{1,0,0,0,3,0,9,0},
{0,3,5,3,0,0,0,6},
{0,0,6,0,0,0,2,8}