JAVA - 생성한 배열을 오름차순으로 선택정렬 하는 퀴즈(2022-07-20)

2022. 7. 21. 00:323층 1구역 - 개발의 장/JAVA

결과

 

배열의 길이를 생성 : 6
6개의 배열이 생성되었습니다.
데이터를 입력하세요
1번째 데이터 입력 : 9
2번째 데이터 입력 : 2
3번째 데이터 입력 : 6
4번째 데이터 입력 : 1
5번째 데이터 입력 : 8
6번째 데이터 입력 : 7
배열의 데이터 : 9 2 6 1 8 7 입니다.
1 2 6 7 8 9 

 

 

package arrays_0720;

import java.util.Scanner;

public class Quiz05_Repeat {

	public static void main(String[] args) {
		// 생성한 배열을 오름차순으로 선택정렬 하기
		Scanner sc = new Scanner(System.in);
		int i = 0;

		System.out.print("배열의 길이를 생성 : ");
		int num = sc.nextInt();
		int[] data = new int[num];
		System.out.println(num + "개의 배열이 생성되었습니다.");
		System.out.println("데이터를 입력하세요");

		for (i = 0; i < data.length; i++) {
			System.out.print((i + 1) + "번째 데이터 입력 : ");
			data[i] = sc.nextInt();
		}

		System.out.print("배열의 데이터 : ");
		for (i = 0; i < data.length; i++) {
			System.out.print(data[i] + " ");
		}
		System.out.println("입니다.");

		for (i = 0; i < data.length - 1; i++) {
			// 기준은 0번째부터 시작. 마지막 번째는 비교하지 아니하기 때문에 arr의 배열 길이에서 -1 그리고 i를 순차적으로 더함.
			for (int j = i + 1; j < data.length; j++) {
				// 다중 for문을 이용하여 swap할 변수값 생성 이 때, 스왑할 변수는 기준보다 1칸 큰값이므로 1를 더하고 arr배열 만큼 실행
				// System.out.println(i + ", " + j); -->> 출력값을 보면 i=0일 때, j의 1~4까지 비교하고, i=1일 때,
				// j의 2~4까지 비교하는 결과를 얻을 수 있다.
				if (data[i] > data[j]) { // 오름차순 선택정렬
					// if(data[i] < data[j]) 내림차순 선택정렬
					int tmp = data[i]; // 스왑 해줄 때, 기존에 있던 수를 백업해줄 함수가 필요. 함수하나를 만들어서 백업 후
					data[i] = data[j]; // 배열의 비교한 값을 포맷 시켰던 변수에 삽입.(스왑)
					data[j] = tmp; // 백업했던 값을 대입
				}
			}

		}
		for (i = 0; i < data.length; i++) {
			System.out.print(data[i] + " ");
		}
		System.out.println();

	}

}