yƒvƒƒOƒ‰ƒ€C:\MyJava\place\ApStart2.javaz**************************
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class ApStart2 extends JApplet{
//int[] place={1,2,3,4}; //4‰ÓŠ‚¾‚¯‚ÅŒvŽZ‚·‚éê‡
//int[] place={1,2,3,4,5};
//int[] place={1,2,3,4,5,6};
//int[] place={1,2,3,4,5,6,7};
int[] place={1,2,3,4,5,6,7,8};
int min=10000;
public void init(){
int sum=0;
DistanceTable d=new DistanceTable();
d.put(1,2,45);
d.put(3,1,245);
d.put(2,3,145);
d.put(1,4,95);
d.put(3,4,225);
d.put(2,4,14);
d.put(1,5,15);
d.put(2,5,91);
d.put(3,5,22);
d.put(4,5,54);
d.put(1,6,34);
d.put(2,6,45);
d.put(3,6,191);
d.put(4,6,122);
d.put(5,6,74);
d.put(1,7,154);
d.put(2,7,4);
d.put(3,7,245);
d.put(4,7,1);
d.put(5,7,132);
d.put(6,7,84);
d.put(1,8,54);
d.put(2,8,55);
d.put(3,8,25);
d.put(4,8,41);
d.put(5,8,12);
d.put(6,8,184);
d.put(7,8,71);
AppletConsole ac=new AppletConsole(this);
ArrayTest2 ar=new ArrayTest2();
int[][] ar2=ar.makeArray(place);
/*
* ”z—ñ‚ð‘S•”•\ަ‚·‚é•”•ª
*/
/*
ac.append("\nŠJŽn\n");
for(int i=0;i<ar2.length;i++){
ac.append("\n");
for(int j=0;j<ar2[i].length;j++){
ac.append(ar2[i][j]+",");
}
}
*/
int[] temp=new int[ar2.length];
int[] bestway=new int[ar2.length];
for(int i=0;i<ar2[0].length;i++){//**************** 3
ac.append("\n");
for(int j=0;j<ar2.length;j++){
temp[j]=ar2[j][i];
}
sum=d.distanceCalc(temp);
ac.append("‹——£: "+sum);
if(min>sum){
min=sum;
System.arraycopy(temp,0,bestway,0,temp.length);
}
}
ac.append("\n");
ac.append("Å’Z‹——£\n"+min+"\nÅ’Zƒ‹[ƒg\n");
for(int i=0;i<bestway.length;i++){//**************** 3
ac.append(bestway[i]+",");
}
}
}
class DistanceTable{
HashMap<Integer,Integer> dtable;
public DistanceTable(){
dtable=new HashMap<Integer,Integer>();
}
void put(int p1,int p2,int distance){
Key key=new Key(p1,p2);
dtable.put(key.getKey(),distance);
}
int distanceCalc(int[] place){
int sum=0;
int key;
for(int i=0;i<place.length-1;i++){
key=new Key(place[i],place[i+1]).getKey();
// System.out.println("Distance"+dtable.get(key));
sum+=dtable.get(key);
}
return sum;
}
}
class Key{
private int key;
Key(int p1,int p2){
if(p2<p1)key=p2*10+p1;
if(p1<p2)key=p1*10+p2;
}
int getKey(){
return key;
}
}