⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.jsl

📁 用很简单的方法描述了如何勇贪婪算法解决旅行商问题
💻 JSL
字号:
package 旅行家;
import java.*;
import java.util.*;
import java.io.*;
import java.lang.*;
public class traveler
{
	int qidian;
	int zhongdian;
    int quanzhi;
	traveler()
	{
		this.qidian = -1;
		this.zhongdian = -1;
		this.quanzhi = -1;
	}
	traveler(int x, int y, int z)
	{
		this.qidian = x;
		this.zhongdian = y;
		this.quanzhi = z;
	}
	void travelerfuzhi(int x, int y, int z)
	{
		this.qidian = x;
		this.zhongdian = y;
		this.quanzhi = z;
	}
/*	static void prtintf(int[][] a, int i)
	{
		int x = 0, y = 0;
		for (; x < i; x++)
		{
			for (y = 0; y < x; y++)
			{
				System.out.println(a[x][y]);
			}

		}
	}
 */
	static int[] traveler1(traveler[] a, int x, int[] b)
	{
		int i = 0, j = 1, k = 2, y, z,c=0;
		boolean p;
		b[0] = a[0].qidian;
		b[1] = a[0].zhongdian;
		z = a[0].zhongdian;
		do
		{
			for (j = 0; j < x; j++)
			{
				p = true;
				if (a[j].qidian == z)
				{
					c = a[j].zhongdian; p = false;
					for (i = 0; !(b[i] == -1); i++)
						if (b[i] == a[j].zhongdian) p = true;
				}
				if (a[j].zhongdian == z)
				{
					c = a[j].qidian; p = false;
					for (i = 0; !(b[i] == -1); i++)
						if (b[i] == a[j].qidian) p = true;
				}
				if (!p) 
				{
					b[k++] = c;
					z = c;
				}
			}
			
		} while (!(k==4));
		return b;



	}
	static traveler[] arrang(traveler[] a, int x)
	{
		traveler b = new traveler();;
		int i=0,j;
		for(;i<x;i++)
		{
			for(j=i+1;j<x;j++)
			{
				if(a[i].quanzhi>a[j].quanzhi)
				{
					b=a[i];
					a[i]=a[j];
					a[j]=b;
				}
			}
		}
		return a;
	}
	static String inputstr()
	{
		String pm = "";
		try
		{
			InputStreamReader reader = new InputStreamReader(System.in);
			BufferedReader input = new BufferedReader(reader);
			pm = input.readLine();
		}
		catch (IOException e)
		{
			System.out.println("IOException occur...");
		}
			return pm;
	}



	public static void main(String[] args)throws IOException
	{
		int i = 0, j = 0, x = 0, k = 0;
		System.out.println("请输入边的条数:");
		int b = Integer.parseInt(inputstr());
		traveler[] a = new traveler[b];
		int[] c = new int[b];
		for (i = 0; i < b; i++)
		{
			c[i] = -1;
		}
			System.out.println(b);
		for (; b > 0; b--)
		{
			System.out.println("请输入边的起点:");
			i = Integer.parseInt(inputstr());
			System.out.println("请输入边的终点:");
			j = Integer.parseInt(inputstr());
			System.out.println("请输入边的权值:");
			x = Integer.parseInt(inputstr());
			a[k] = new traveler(); 
			a[k].travelerfuzhi(i, j, x);
			k++;
		}
		for (i = 0; i < k; i++)
		{
			System.out.println(a[i].qidian);
			System.out.println(a[i].zhongdian);
			System.out.println(a[i].quanzhi);
			System.out.println("~~~~~~~~");
		}
		a=arrang(a, k);
		System.out.println("~~~~~~~~");
		System.out.println("~~~~~~~~");
		for(i=0;i<k;i++)
		{
			System.out.println(a[i].qidian);
			System.out.println(a[i].zhongdian);
			System.out.println(a[i].quanzhi);
			System.out.println("~~~~~~~~");
		}
		traveler1(a, k, c);
		c[4] = 0;
		for (b = 0; b < 5; b++)
		{
			System.out.println(c[b]);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -