Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void rota_mais_proxima (float r1[MAX_CIDADES][2], float r2[MAX_CIDADES][2], int n) {
- float mapa[n][n];
- int lista[n*n], flag;
- int choice = -1;
- float pai[n][n];
- int i, j, a;
- float dist[n], distMin = -1;
- for (i = 0; i < n; i++)
- for (j = 1; j < n; j++)
- mapa[i][j] = mapa[j][i] = sqrt(pow(r1[i][0]-r1[j][0],2) + pow(r1[i][1]-r1[j][1],2));
- for (a = 1; a < n; a++) {
- for (i = 0; i < n; i++) {
- dist[i] = -1;
- pai[a][i] = -1;
- }
- dist[0] = [0];
- flag = 0;
- lista[flag++] = 0;
- while (flag != 0) {
- flag--;
- for (i = 0; i < n; i++)
- if (dist[i] = -1 || dist[i] > dist[lista[flag]]+mapa[i][lista[flag]]) {
- dist[i] = dist[lista[flag]][i] + dist[lista[flag]];
- pai[a][i] = lista[flag];
- lista[flag++] = i;
- }
- }
- if (distMin == -1 || dist[a] < distMin) {
- distMin = dist[a];
- choice = a;
- }
- }
- return distMin;
- }
Add Comment
Please, Sign In to add comment