티스토리 뷰
자바 최단경로 알고리즘
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Dikstra
{
public static void main(String[] args) throws Exception
{
int n = 10; //배열의 최대길이
int m = 5000; //너무 멀어서 이동하지 못하는 값 (다른수에 비해 충분히 크면 됨)
int i,j,k=0;
int s,e,min;
int [] v = new int[n];
int [] distance = new int[n]; //누적거리 배열
int [] via = new int[n];
//인접-행렬 메트릭스
int [][] data = {
{0,2,m,m,m,3,m,m,2,1},
{2,0,4,1,m,m,m,m,2,2},
{m,4,0,m,3,m,m,m,2,m},
{m,1,m,0,3,m,2,m,4,2},
{m,m,3,3,0,m,m,4,6,4},
{3,m,m,m,m,0,6,m,m,1},
{m,m,m,2,m,6,0,4,7,2},
{m,m,m,m,4,m,4,0,5,5},
{m,4,m,m,2,m,4,2,m,m},
{m,1,m,5,4,m,4,m,5,8}
};
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ));
System.out.print("\n출발점을 입력하시오 : ");
s = Integer.parseInt(br.readLine());
System.out.print("\n도착점을 입력하시오 : ");
e = Integer.parseInt(br.readLine());
for( j = 0; j < n; j++ )
{
v[j] = 0;
distance[j] = m;
}
distance[s-1] = 0;
for( i=0; i < n; i++ )
{
min = m;
for( j=0; j < n; j++ )
{
if( v[j] == 0 && distance[j] < min )
{
k = j;
min = distance[j];
}
}
v[k] = 1;
if(min == m) break;
for(j = 0; j < n; j++)
{
if(distance[j] > distance[k] + data[k][j])
{
distance[j] = distance[k] + data[k][j];
via[j]=k;
}
}
}
System.out.printf("\n %d에서 출발하여, %d로 가는 최단 거리는 %d입니다.\n", s, e, distance[e-1]);
int path[] = new int[n];
int path_cnt=0;
k = e-1;
while(true)
{
path[path_cnt++]=k;
if(k == s-1)break;
k = via[k];
}
System.out.print(" 경로는 : ");
for(i = path_cnt-1; i >= 1; i--)
{
System.out.printf("%d -> ",path[i]+1);
}
System.out.printf("%d입니다",path[i]+1);
}
}
[출처] 다익스트라 알고리즘(최단경로 찾기)|작성자 초리
'프로그램' 카테고리의 다른 글
다익스트라(Dijkstra) 알고리즘 (0) | 2014.02.08 |
---|---|
자바 최단거리 알고리즘 (Dijkstra) (0) | 2014.02.08 |
자바스크립트 replace (12) | 2014.02.07 |
전자정부프레임웍에서 ibatis 쿼리 로그 생성 (0) | 2014.02.05 |
jquery mobile RWD Tables (11) | 2014.02.04 |
- Total
- Today
- Yesterday
- java
- 전자정부프레임웍
- 블로그
- jstl
- 톰캣
- 부산
- Eclipse
- 가사
- 블로그 마케팅
- 소프트웨어공학
- 이클립스
- 자바
- 맛집
- 연말정산
- base64
- 프로그램
- OST
- 쿼리
- MySQL
- Let it Go
- 자바스크립트
- ibatis
- asp
- Tomcat
- 겨울왕국
- jQuery Mobile
- jQuery
- MSSQL
- JSP
- jqm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |