JAVA 응용문제 이중배열 정렬

2022. 11. 22. 09:03JAVA



public class MyTest02 {

	public static void main(String[] args) {
		
		int i,j,k,l;
		int score[][] = new int[10][10];
		int n,n2;
		int tmp;
		int count = 1;
		int index = 0;
		int index2 = 0;
		for(i = 0; i < score.length;i++)
		{
			for(j = 0; j < score[i].length;j++)
			{
				score[i][j] = count;
				count++;
			}
		}
		for(i = 0; i < score.length;i++)
		{
			for(j = 0; j< score[i].length;j++)
			{
				System.out.printf("%3d ",score[i][j]);
			}
			System.out.println();
		}
		System.out.println();
		System.out.println("▼▼▼▼▼▼섞는중▼▼▼▼▼▼");
		System.out.println();
		
		for(i  = 0; i < 10000; i++)
		{
			n = (int)(Math.random()*score.length);
			for(j = 0; j < 10000; j++)
			{
				n2 = (int)(Math.random()*score[n].length);
				tmp = score[n][n2];
				score[n][n2] = score[0][0];
				score[0][0] = tmp;
			}

		}
		
		for(i = 0; i < score.length;i++)
		{
			for(j = 0; j< score[i].length;j++)
			{
				System.out.printf("%3d ",score[i][j]);
			}
			System.out.println();
		}

		System.out.println();
		System.out.println("▼▼▼▼▼▼정렬중▼▼▼▼▼▼");
		System.out.println();
		
		for(l = 0; l <score.length ; l++)
		{
			
			for(k = 0; k < score[l].length; k++)
			{
				index = l;
				index2 = k;
				for( i = l; i < score.length ; i++)
				{
					for( j = (i==l) ? k : 0  ; j < score[l].length;j++)
					{
						
						
						if(score[index][index2] < score[i][j])
						{
							index = i;
							index2 = j;
						}
						
					}
				}
				tmp = score[l][k];
				score[l][k] = score[index][index2];
				score[index][index2] = tmp;	
			}
			
		}
		
		for(i = 0; i < score.length;i++)
		{
			for(j = 0; j< score[i].length;j++)
			{
				System.out.printf("%3d ",score[i][j]);
			}
			System.out.println();
		}	
	}

}

출력

배열의 크기는 임의로 설정 가능