Saltar al contenido

ejemplo de código de código c ++ del algoritmo dijkstra

Hola usuario de nuestra web, tenemos la respuesta a lo que estabas buscando, has scroll y la encontrarás un poco más abajo.

Ejemplo 1: algoritmo dijkstra c ++

#includeusingnamespace std;intmain()int n =9;int mat[9][9]=100,4,100,100,100,100,100,8,100,4,100,8,100,100,100,100,11,100,100,8,100,7,100,4,100,100,2,100,100,7,100,9,14,100,100,100,100,100,100,9,100,100,100,100,100,100,100,4,14,10,100,2,100,100,100,100,100,100,100,2,100,1,6,8,11,100,100,100,100,1,100,7,100,100,2,100,100,100,6,7,100;int src =0;int count =1;int path[n];for(int i=0;i<n;i++)
		path[i]= mat[src][i];int visited[n]=0;
	visited[src]=1;while(count<n)int minNode;int minVal =100;for(int i=0;i<n;i++)if(visited[i]==0&& path[i]<minVal)
				minVal = path[i];
				minNode = i;
		
		visited[minNode]=1;for(int i=0;i<n;i++)if(visited[i]==0)
				path[i]=min(path[i],minVal+mat[minNode][i]);
					
		count++;
	
	path[src]=0;for(int i=0;i<n;i++)
		cout<<src<<" -> "<<path[i]<<endl;return(0);

Ejemplo 2: Ruta más corta del gráfico ponderado de Dijkstra en c ++

#include#include#defineV9intminDistance(int dist[],bool sptSet[])int min = INT_MAX, min_index;for(int v =0; v < V; v++)if(sptSet[v]==false&& dist[v]<= min) 
            min = dist[v], min_index = v;return min_index;voidprintSolution(int dist[])printf("Vertex tt Distance from Sourcen");for(int i =0; i < V; i++)printf("%d tt %dn", i, dist[i]);voiddijkstra(int graph[V][V],int src)int dist[V];bool sptSet[V];for(int i =0; i < V; i++) 
        dist[i]= INT_MAX, sptSet[i]=false; 
  
  
    dist[src]=0;for(int count =0; count < V -1; count++)int u =minDistance(dist, sptSet); 
  
       
        sptSet[u]=true;for(int v =0; v < V; v++)if(!sptSet[v]&& graph[u][v]&& dist[u]!= INT_MAX 
                && dist[u]+ graph[u][v]< dist[v]) 
                dist[v]= dist[u]+ graph[u][v];printSolution(dist);intmain()int graph[V][V]=0,4,0,0,0,0,0,8,0,4,0,8,0,0,0,0,11,0,0,8,0,7,0,4,0,0,2,0,0,7,0,9,14,0,0,0,0,0,0,9,0,10,0,0,0,0,0,4,14,10,0,2,0,0,0,0,0,0,0,2,0,1,6,8,11,0,0,0,0,1,0,7,0,0,2,0,0,0,6,7,0;dijkstra(graph,0);return0;

Si eres capaz, puedes dejar un escrito acerca de qué te ha parecido este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *