본문/내용
=>설명
②번의 최단거리의 1행(0 1 3 1 4 5)와 ④번의 각 정점에 대한 (최단거리: x)를 비교해보면 같음을 알수 있다.(프로그램이 제대로 구현되었음을 의미)
Dijkstra 알고리즘에서 테스트1의 그래프(grape.dat)를 동일한 것으로 했다. Floyd 알고리즘과 결과를 비교하기 위해서이다. ④번의 결과를 유심히 봐두면 좋겠다.
▶테스트2 (파일명: floyd2.dat)
▶실행결과2
=>설명
②번의 최단거리의 1행(0 2 6 3 6 3 5 9)와 ④번의 각 정점에 대한 (최단거리: x)를 비교해보면 같은을 알수 있다.(프로그램이 제대로 구현되었음을 의미)
2. Greedy - Dijkstra 알고리즘
▶dijkstra 알고리즘 소스(파일명: dijkstra.cpp)
#include
#include
#include //파일에 입출력을 위해서
using std::ofstream;
using std::ifstream;
//이음선 구조체 정의
struct edge {
int start_v;
int end_v;
};
const int MAX=11;//vertex최대 10개 test(1~10번 index사용)
const int XX=99; //XX: infinity 무한대
int touch[MAX]; //마지막 거치는 정점
int leng[MAX]; //최단 경로 길이
int fileopen(int [MAX][MAX]);…