💁♀️ 배열의 정렬(Array Sort)이란,
배열이나 리스트에서 대소크기에 맞지 않는 숫자가 무작위로 있다고 했을 때 이를 오름차순, 내림차순으로 정렬 해주는 것
int[] arr = {2, 1, 3};
int temp = arr[0];
arr[0] = arr[1];
arr[1] = arr[2];
arr[2] = temp;
for(int num : arr) {
System.out.print(num + " ");
}
💻 Mini Console
1 3 2
int[] iarr = {2, 5, 4, 6, 1, 3};
>>> 0번째 인덱스는 비교할 필요가 없으므로 1번 인덱스부터 비교 시작
>>> 기준 인덱스를 이동(증가)시키는 for문 (1번 인덱스인 "5"기준으로 하기 때문에 i = 1)
for(int i = 1; i < iarr.length; i++) {
>>> 인덱스가 증가할 때마다 처음부터 해당 인덱스 - 1까지의 값을 비교하는 반복문
for(int j = 0; j < i; j++) { // j는 i보다 -1까지만 반복할 것
>>> 오름차순 정렬을 위한 처리
>>> 만약, 내림차순으로 구현하고자 한다면 부등호 방향을 반대로 처리
if(iarr[i] < iarr[j]) { >>> 만약 j가 i보다 클 때 값의 위치 변경
>>> 값 위치 변경
int temp = iarr[i];
iarr[i] = iarr[j];
iarr[j] = temp;
}
}
System.out.println(i + "회차 : " + Arrays.toString(iarr));
>>> 배열에 담긴 값이 어떻게 바뀌는지 출력해주는 메소드
}
>>> 최종 결과
System.out.println("정렬 완료 : " + Arrays.toString(iarr));
💻 Mini Console
1회차 : [2, 5, 4, 6, 1, 3]
2회차 : [2, 4, 5, 6, 1, 3]
3회차 : [2, 4, 5, 6, 1, 3]
4회차 : [1, 2, 4, 5, 6, 3]
5회차 : [1, 2, 3, 4, 5, 6]
정렬 완료 : [1, 2, 3, 4, 5, 6]
int[] iarr = {2, 5, 4, 6, 1, 3};
int[] copy = iarr.clone();
System.out.println("copy 정렬 전 : " + Arrays.toString(copy));
Arrays.sort(copy);
System.out.println("copy 정렬 후 : " + Arrays.toString(copy));
💻 Mini Console
copy 정렬 전 : [2, 5, 4, 6, 1, 3]
copy 정렬 후 : [1, 2, 3, 4, 5, 6]
📌 Ref.
* Arrays.sort() 메소드를 이용하면 훨씬 빠르고 간단하게 정렬을 할 수 있음