贪心算法解决TSP问题 java代码包含主函数
时间: 2023-09-07 22:11:10 浏览: 92
好的,我可以提供贪心算法解决TSP问题的Java代码,如下:
```
import java.util.*;
public class GreedyTSP {
public static int[][] graph;
public static boolean[] visited;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
graph = new int[n][n];
visited = new boolean[n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
graph[i][j] = sc.nextInt();
}
}
List<Integer> path = new ArrayList<>();
int start = 0;
path.add(start);
visited[start] = true;
while (path.size() < n) {
int min = Integer.MAX_VALUE;
int minIndex = -1;
for (int i = 0; i < n; i++) {
if (!visited[i] && graph[start][i] < min) {
min = graph[start][i];
minIndex = i;
}
}
path.add(minIndex);
visited[minIndex] = true;
start = minIndex;
}
// Add the starting node to complete the cycle
path.add(0);
for (int p : path) {
System.out.print(p + " ");
}
}
}
```
以上代码是贪心算法解决TSP问题的Java实现。其中,我们输入的是一个图的邻接矩阵,然后依次选择距离当前节点最近的未访问的节点,直到所有节点被访问一次,构成一条最短的回路路径。请注意,这个代码只是给出了一个简单的实现,它并不一定是一条最短的路径。
阅读全文