본문 바로가기

문제풀이/JAVA

[JAVA] 일차원 배열 오름차순 정렬

728x90

[문제]

주어진 일차원 배열의 내용을 오름차순으로 정렬하는 로직을 작성하시오.

(반드시 이중 for문을 사용하여 구현해야 한다.)

 

[실행예제]

[배열의 내용]
3, 24, 1, 55, 17, 43, 5
[클래스 실행결과]
1, 3, 5, 17, 24, 43, 55

[코드]

private static void mySort() {
    int[] arr = {3, 24, 1, 55, 17, 43, 5};
    System.out.println("before : " + Arrays.toString(arr));
    for(int i=0; i<arr.length-1; i++) {
        for(int j=i+1; j<arr.length; j++) {
            if(arr[i]>arr[j]) {
                int temp = arr[j];
                arr[j] = arr[i];
                arr[i] = temp;
            }
        }
    }
    System.out.println("After : " + Arrays.toString(arr));
}

 

[설명]

  1. 바깥 쪽 for문은 배열의 첫번째 부터 배열의 마지막 -1 까지 반복한다.
  2. 안 쪽 for문은 바깥쪽 for문의 반복 변수 +1 부터 배열의 마지막까지 반복한다.
  3. 즉, 기준이 되는 숫자를 하나 잡아 다음 숫자 부터 배열의 마지막 숫자 까지 비교한다.
  4. 비교 하였을 때 기준이 되는 숫자보다 작은 숫자가 있다면 두 배열의 자리를 바꿔준다.
  5. 이때, 일반 대입으로는 자리를 바꿀 수 없기에 temp변수를 하나 생성하여 두 배열의 자리를 바꿔준다.

 

 

728x90
반응형

'문제풀이 > JAVA' 카테고리의 다른 글

[JAVA] [프로그래머스] 두 개 뽑아서 더하기  (0) 2021.03.05
[JAVA] Caesar Cipher  (0) 2021.03.02
[JAVA] 태어난 계절  (0) 2021.02.17
[JAVA] 달의 마지막 날 구하기  (0) 2021.02.16