반응형
Arrays.sort()
java.util.Arrays 클래스의
Arrays.sort() 함수를 이용하여 배열의 오름차순 내림차순으로 쉽게 정렬할 수 있습니다.
Dual-Pivot Quicksort 알고리즘으로 정렬이 됩니다.
평균 시간복잡도 : O(n log n)
최악 시간복잡도 : O(n^2)
오름차순
int[] arr1 = new int[] {5, 3, 2, 4, 1, 2};
System.out.print("정렬 전 : ");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.println();
//오름차순 정렬
Arrays.sort(arr1);
System.out.print("정렬 후 : ");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
결과
정렬 전 : 5 3 2 4 1 2
정렬 후 : 1 2 2 3 4 5
내림차순
내림차순의 경우
java.util.Comparator 클래스나 java.util.Collections 클래스
Comparator.reverseOrder() 를 이용하거나
Collections.reverseOrder() 를 이용합니다
* 주의해야 될 것은 자료형
int int[] arr1 = new int[] {5, 3, 2, 4, 1, 2}; 대신
Integer[] arr1 = new Integer[] {5, 3, 2, 4, 1, 2}; 로 이용해야 합니다
Integer[] arr1 = new Integer[] {5, 3, 2, 4, 1, 2};
System.out.print("정렬 전 : ");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.println();
//내림차순 정렬
Arrays.sort(arr1, Comparator.reverseOrder()); //Comparator
//Arrays.sort(arr1, Collections.reverseOrder()); //Collections
System.out.print("정렬 후 : ");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.println();
결과
정렬 전 : 5 3 2 4 1 2
정렬 후 : 5 4 3 2 2 1
만약 내가 원하는 조건으로 정렬의 재정의 하고 싶다면
Comparator 인터페이스를 생성하여 compare 오버라이드 하여 재정의 합니다
Arrays.sort(arr1, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1); //내림차순
}
});
java Arrays api 문서
docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#sort-int:A-
반응형
'언어 > java' 카테고리의 다른 글
자바 toCharArray() 문자열을 한글자씩 char형의 배열로 담는 함수 사용법 (0) | 2023.04.10 |
---|---|
선택 정렬 (selection sort) 자바 (0) | 2021.04.10 |
거품정렬(버블정렬 bubble sort) java 소스 (0) | 2021.01.05 |
댓글