Java

정렬(Sorting) - 오름차순, 내림차순

성장코딩 2022. 12. 26. 21:51

정렬 방법 중에서 오름차순과 내림차순에 대해서 알아보자.

 

int[] num = { 3, 6, 4, 8, 1} 를 오름차순으로 정렬

1. num[0] 값과 나머지 num[1] ~ num[4]의 값을 한 쌍씩 비교한다.

2. 이때, num[0] > num[i] (i = 1,2,3,4) 이면, 자리를 바꿔준다. 그 결과 배열 num은 { 1, 6, 4, 8, 3 }이 된다.

3. num[1] 값과 나머지 num[2] ~ num[4]의 값을 한 쌍씩 비교한다.

4. 이때, num[1] > num[i] (i = 2,3,4) 이면, 자리를 바꿔준다. 그 결과 배열 num은 { 1, 4, 6, 8, 3 } -> { 1, 3, 6, 8, 4 }가 된다.

5. num[2] 값과 나머지 num[3] , num[4]의 값을 한 쌍씩 비교한다.

6. 이때, num[2] > num[i] (i = 3,4) 이면, 자리를 바꿔준다. 그 결과 배열 num은 { 1, 3, 4, 8, 6 }이 된다.

7. num[3] 값과 num[4]의 값을 비교한다. 그 결과 최종적으로 배열 num이 { 1, 3, 4, 6, 8 }이 되었다.

 

내림차순의 경우는 부등호 방향을 반대로 하여 비교한다.

 

이제 직접 코드를 작성하여 결과를 비교해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package test;
 
import java.util.Arrays;
 
public class Practice {
 
    public static void main(String[] args) {
        
        int[] num = {3,6,4,8,1};
        int temp;
        //오름차순
        for (int i = 0; i < num.length - 1; i++) {
            for(int j = i + 1; j < num.length; j++) {
                if(num[i] > num[j]) {
                    temp = num[i];   //swap
                    num[i] = num[j];
                    num[j] = temp;
                }
            }
        }
        
        System.out.print(Arrays.toString(num));
        
    }
    
 
}
 
cs

결과는 { 1, 3, 4, 6, 8 }이다.

 

같은 논리로 내림차순 정렬을 해보면,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package test;
 
import java.util.Arrays;
 
public class Practice {
 
    public static void main(String[] args) {
        
        int[] num = {3,6,4,8,1};
        int temp;
        //내림차순
        for (int i = 0; i < num.length - 1; i++) {
            for(int j = i + 1; j < num.length; j++) {
                if(num[i] < num[j]) {
                    temp = num[i];   //swap
                    num[i] = num[j];
                    num[j] = temp;
                }
            }
        }
        
        System.out.print(Arrays.toString(num));
        
    }
    
 
}
 
cs

결과는 { 8, 6, 4, 3, 1 }이다.