기술 정리/Java

[Java]Collections.sort()와 Arrays.sort()

Treejin 2020. 12. 19. 22:07
반응형

Collections.sort

  • ArrayList, LinkedList와 같은 Collection타입의 정렬을 지원한다.
  • merge sort 사용
    • stable한 정렬 : 같은 key값을 가진 node가 정렬 전과 정렬 후의 위치가 달라지지 않는다.
    • int같은 경우 서로 위치가 달라져도 상관없으므로 quicksort를 사용한다.
Collections.sort(nums);   //오름차순
Collections.sort(nums, Collections.revereseOrder());   //내림차순

 

Arrays.sort

  • int, char와 같은 primitive type배열에서 정렬을 지원한다.(String은 reference type이지만 예외로 가능)
  • dual pivot quicksort 사용
    • quicksort가 정렬되어 있는 상태에서는 O(n^2)의 시간복잡도를 가진다는 문제를 보완하고 속도도 더 빠르다.
  • 현재 저장되어 있는 변수를 사용하고 내부적으로 정렬을 수행한다.
Arrays.sort(numbers);   //오름차순 정렬
Arrays.sort(numbers, Collections.reverseOrder());   //내림차순 정렬
반응형