본문 바로가기

Algorithm/개념

[Algorithm] 03. 정렬 (Sorting)

정렬 (Sorting)

 

정렬에는 오름차순 정렬과 내림차순 정렬이 있다.

 

 

💡  배열(Array) 정렬

 

📍 오름차순 정렬

 

배열을 오름차순으로 정렬하는 가장 기본적인 방법은 Arrays.sort() 메서드를 사용하는 것이다.

public class Main {	
	public static void main(String[] args) {
    	int[] numbers = {5, 2, 9, 1, 5, 6};
        String[] words = {"banana", "apple", "cherry"};
        
        // 숫자 오름차순 정렬
        Arrays.sort(numbers);
        System.out.println(Arrays.toString(num));
        
        // 문자 오름차순 정렬
        Arrays.sort(words);
        System.out.println(Arrays.toString(words));
	}
}
// 결과
[1, 2, 5, 5, 6, 9]
[apple, banana, cherry]

 

※  Arrays.toString()

Arrays.toString()는 자바에서 배열의 내용을 문자열로 출력하기 위해 사용되는 메소드이다.

위 코드에서 System.out.println(number)System.out.println(words)는 배열의 메모리 주소를 출력한다.
따라서 배열의 내용을 출력하려면 Arrays.toString()을 사용하여야 한다.

 

 

📍 내림차순 정렬

 

만약 내림차순으로 정렬하고 싶다면 Collections.reverseOrder() 메소드를 사용하면 된다.

public class Main {
    public static void main(String[] args) {
        Integer[] numbers = {5, 2, 9, 1, 5, 6};

        Arrays.sort(numbers, Collections.reverseOrder());
        System.out.println(Arrays.toString(numbers));
    }
}
// 결과
[9, 6, 5, 5, 2, 1]

 

 

 

💡  리스트(List) 정렬 

 

📍 오름차순 정렬

 

리스트를 오름차순으로 정렬하는 가장 기본적인 방법은 Collections.sort() 메서드를 사용하는 것이다.

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(2);
        numbers.add(9);
        numbers.add(1);
        numbers.add(5);
        numbers.add(6);
        
        Collections.sort(numbers);
        System.out.println(numbers); 
    }
}
// 결과
[1, 2, 5, 5, 6, 9]

 

 

📍 내림차순 정렬

 

만약 내림차순으로 정렬하고 싶다면 Collections.reverseOrder() 메소드를 사용하면 된다.

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(2);
        numbers.add(9);
        numbers.add(1);
        numbers.add(5);
        numbers.add(6);

        Collections.sort(numbers, Collections.reverseOrder());
        System.out.println(numbers); 
    }
}
// 결과
[9, 6, 5, 5, 2, 1]