인접 행렬이 주어지면 각 점을 적어도 한 번 탐색하고 이동 횟수를 반환하면서 두 노드 사이의 최단 경로를 어떻게 찾을 수 있습니까?인접 행렬의 길 찾기
예 I 그래서 추천 인접 행렬을
int[][] points = { { 0, 1 },{ 0, 2 },{ 1, 2 },{ 1, 3 },{ 3, 4 } };
이 배열 주어
...
가 0 1 2 3 4
0 [0] [1] [1] [0] [0]
1 [1] [0] [1] [1] [0]
2 [1] [1] [0] [0] [0]
3 [0] [1] [0] [0] [1]
4 [0] [0] [0] [1] [0]
0에서 최단 경로 - 4 인 (0-2) (2-1) (1-3) (3-4) 4로 계산한다.
나는 더 이상 갈 방법이 없다. 최소 스패닝 트리 솔루션일까요? 미리 감사드립니다.
http://en.wikipedia.org/wiki/Shortest_path; 골라보세요. –
적어도 한 번씩 각 지점으로 이동 -> [해밀턴 경로] (http://en.wikipedia.org/wiki/Hamiltonian_path)와 유사하게 들리지만 효율적으로 해결하기는 쉽지 않습니다. – Dukeling
[Johnson의 알고리즘] (http://en.wikipedia.org/wiki/Johnson%27s_algorithm) [여기] (http://stackoverflow.com/q/2939877/230513)을 검토하십시오. – trashgod