JAVA 프로그래밍

[JAVA] 풀스택 개발자 부트캠프 005일차 ① 정렬

selfdailycoding 2024. 12. 30. 10:39

정렬(sorting)

숫자의 크기에 따라서 순번대로 배치하는 처리

정렬 특징 예시 사용처
오름차순 작은 수부터 1,2,3,4,5 입사 순위
내림차순 큰 수부터 5,4,3,2,1 월급 순위

선택정렬, 버블정렬, 합병정렬, 퀵정렬


1. 선택 정렬 알고리즘

 

2. 선택 정렬 코드

        int number[] = { 3, 2, 4, 1, 5 };
        int temp;       // swap용 변수

        for(int i = 0; i < number.length - 1; i++) {     
        // 0 ~ 3번째까지 비교

            for (int j = i + 1; j < number.length; j++) {
            // 1 ~ 4, 2 ~ 4, 3 ~ 4번째까지 비교

                if (number[i] > number[j]) {
                // 오름차순 조건
                    temp = number[i];
                    number[i] = number[j];
                    number[j] = temp;
                }
            }
        }

        for (int i = 0 ; i < number.length; i++){
            System.out.print(number[i] + "\t");
        }

 

3. Sorting Program 구현하기

1. 몇 개의 수를 정렬하고 싶은지 user에게 입력받기

2. 입력한 숫자 개수에 맞게 user가 각각 입력(후 나열)받기

3. 오름차순(1), 내림차순(2)도 user가 선택하기

4. 선택 정렬 구현

5. 결과값 출력

// 1. 몇 개를 정렬할래?

Scanner sc = new Scanner(System.in);

// 배열을 설정

int UserNumber;
System.out.print("숫자 몇 개를 정렬하시겠습니까? ");
UserNumber = sc.nextInt();

int[] array = new int[UserNumber];

// 2. 숫자 개수에 맞게 user 입력

System.out.println(array.length + "개의 숫자를 입력하시오.");

for(int k = 0; k < array.length; k++){
    System.out.print((k+1) + "번째 수를 입력하세요. ");
    array[k]= sc.nextInt();
}
System.out.println( "입력한 수는 " + Arrays.toString(array) + "입니다." );

// 3. 오름차순, 내림차순 선택

int sorting;
System.out.print("오름차순 정렬을 원하면 1, 내림차순 정렬을 원하면 2를 입력하시오. ");
sorting = sc.nextInt();

// 4. 방법에 맞게 정렬

int temp;

for (int i = 0; i < array.length - 1; i++) {
    for (int j = i + 1; j < array.length; j++) {
        if(sorting == 1) {
            if (array[i] > array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        } else if (sorting == 2) {
            if (array[i] < array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
}

// 5. 출력
System.out.println("정렬한 결과는 " + Arrays.toString(array) + "입니다.");

sorting program 결과 화면