贪心算法解决tsp问题的c语言代码
时间: 2023-10-09 13:15:27 浏览: 115
下面是使用贪心算法解决TSP问题的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define V 4
int tsp(int graph[][V], int s)
{
int visited[V];
for (int i = 0; i < V; i++) {
visited[i] = 0;
}
visited[s] = 1;
int curr = s;
int cost = 0;
for (int i = 0; i < V - 1; i++) {
int min = INT_MAX;
int next = 0;
for (int j = 0; j < V; j++) {
if (!visited[j] && graph[curr][j] < min) {
min = graph[curr][j];
next = j;
}
}
visited[next] = 1;
cost += min;
curr = next;
}
cost += graph[curr][s];
return cost;
}
int main()
{
int graph[V][V] = { { 0, 10, 15, 20 }, { 10, 0, 35, 25 }, { 15, 35, 0, 30 }, { 20, 25, 30, 0 } };
int s = 0;
int cost = tsp(graph, s);
printf("Minimum cost: %d\n", cost);
return 0;
}
```
在这个例子中,我们假设有4个城市,表示为0, 1, 2和3。输入的图以邻接矩阵的形式给出,在这个例子中,我们假设从城市0开始旅行。tsp函数使用贪心算法来计算最小成本并返回结果。
阅读全文