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 }이다.