import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        /*
            Sorting : 정렬 -> 알고리즘
                      숫자의 크기에 따라서 순번대로 배치하는 처리
                      오름차순(작은수부터), 내림차순(큰수부터)
                      1 2 3 4 5           5 4 3 2 1
                      입사순위             월급순위
            종류 : 선택, 버블, 합병, 퀵 ...
         */

        /*
        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");
        }

        System.out.println();
        */


        // sorting
        Scanner sc = new Scanner(System.in);

        int number[] = null;
        int updown = 1;

        // input
        // 1.몇개를 정렬?
        System.out.print("정렬하고 싶은 숫자의 갯수 >> ");
        int count = sc.nextInt();

        // 배열을 설정
        number = new int[count];

        // 2.숫자의 갯수에 맞게 입력
        for(int i = 0;i < number.length; i++){
            System.out.print((i + 1) + "번째 수 = ");
            number[i] = sc.nextInt();
        }

        // 3.오름(1)/내림(2)
        System.out.print("오름(1), 내림(2) = ");
        updown = sc.nextInt();

        // process
        // 4.방법에 맞게 정렬
        int temp;
        for(int i = 0;i < number.length - 1; i++){
            for(int j = i + 1;j < number.length; j++){
                if(updown == 1){
                    if(number[i] > number[j]){   // 오름
                        temp = number[i];
                        number[i] = number[j];
                        number[j] = temp;
                    }
                }
                else{
                    if(number[i] < number[j]){   // 내름
                        temp = number[i];
                        number[i] = number[j];
                        number[j] = temp;
                    }
                }
            }
        }

        // print
        // 5.출력
        String message = "";
        if(updown == 1){
            message = "정렬방법은 오름 차순이고 데이터는 다음과 같습니다";
        }else{
            message = "정렬방법은 내림 차순이고 데이터는 다음과 같습니다";
        }

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

+ Recent posts