본문 바로가기
Club/99클럽 코테 스터디 2기

99클럽 코테 스터디 10일차 TIL Java 배열 정렬 #2

by ʚ⇜❅🎕̈❄⇝ɞ 2024. 5. 29.
728x90
반응형

Java 배열 정렬 방법

  • Stream API의 sorted()
    • 오름차순 정렬 - sorted(Comparator.naturalOrder())
    • 내림차순 정렬 - sorted(Comparator.reverseOrder())
    • 새로운 변수에 저장하여 추가 메모리가 필요하다.
    • Comparator는 Wrapper Class 배열에서 사용할 수 있다.
    • Primitive type 배열을 Wrapper Class 배열로 바꿔서 사용한다.
    • String 배열은 사용 가능하다. (String은 Primitive type이 아님!)
// 오름차순 정렬
final List<Integer> newArr = Arrays.stream(arr)
    .boxed()
    .sorted(Comparator.naturalOrder())
    .collect(Collectors.toList());
    
// 내림차순 정렬
final List<Integer> newArr = Arrays.stream(arr)
    .boxed()
    .sorted(Comparator.reverseOrder())
    .collect(Collectors.toList());
  • Stream API의 sorted()의 알고리즘과 시간 복잡도
    • 알고리즘: Timsort
    • 평균 시간 복잡도: O(nlogn)
    • 최악 시간 복잡도: O(nlogn)
728x90

알게 된 점

  • sorted()를 사용하려면 Wrapper Class 배열로 바꿔야 한다는 것을 알게 되었다.
  • boxed()Primitive type의 스트림을 해당 Wrapper type의 스트림으로 변환하는 데 사용된다는 점을 알게 되었다.

다음에 학습할 것

  • 다양한 정렬의 동작 원리
반응형

Java 코딩 테스트에서 정렬 알고리즘은 매우 흔히 쓰이므로 잘 파악하고 있어야겠다.

728x90
반응형

댓글