int 배열을 오름차순/내림차순으로 정렬하기

정렬은 코딩테스트 뿐만아니라 실무에서도 자주쓰이는 알고리즘이다.
자주 쓰이는 만큼 편하고 깔끔하게 정렬을 활용하는 방법을 알아두면 유용하게 쓰는 경우가 많다.

 

1. 오름차순

 

오름차순으로 정렬하는 방법은 정말 간단하다.
Arrays 클래스의 sort() 메서드를 사용하면 되기 때문이다.

import java.util.Arrays;

public class SortArrayExample {
    public static void main(String[] args) {
        int[] arr = {4, 2, 5, 3, 1};

        Arrays.sort(arr);

        for (int num : arr) {
            System.out.println(num);
        }

    }
}
1
2
3
4
5

 

2. 내림차순

 

내림차순 정렬의 경우 기본으로 제공되는 메서드가 없는 관계로 직접 구현해서 사용해야한다.
Object이 아닌 primitive타입 자료형 이기 때문에 Comparator를 사용해 정렬하는것도 불가능하다.
먼저 오름차순 정렬을 한 다음 그 결과를 뒤집는식으로 구현하면 된다.
구현은 아래와 같다. 
reverseSort는 매개변수로 받은 배열 자체를 내림차순 정렬한다.

import java.util.Arrays;

public class ReverseSortArrayExample {
    public static void main(String[] args) {
        int[] arr = {4, 2, 5, 3, 1};

        reverseSort(arr);
        for (int num : arr) {
            System.out.println(num);
        }
    }

    public static void reverseSort(int[] arr) {
        Arrays.sort(arr);
        for (int i = 0; i < arr.length / 2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = temp;
        }
    }
    
}
5
4
3
2
1