반응형
코딩테스트 문제를 풀면서 문득
Arrays.sort()의 시간복잡도가 궁금해졌다
구글링 해보니
Arrays.sort()는 듀얼 피벗 퀵소트 알고리즘을 사용하여
평균 O(nlog(n))의 시간복잡도와 최악은 O(n^2)의 시간복잡도가 나온다고한다
Collectios.sort()의 경우, 합병정렬과 삽입정렬을 결합한 TimSort 알고리즘을 사용하여
최선 O(n) 시간복잡도, 평균 O(nlog(n))의 시간복잡도와 최악도 O(nlog(n))의 시간복잡도를 갖고있다고 한다.
따라서 정렬시 특별한 사유가 없으면 Collections.sort()를 사용하면 될 것 같다
출처
[JAVA] 정렬에 대한 고찰 (Arrays.sort() 와 Collections.sort()) (tistory.com)
[JAVA] 정렬에 대한 고찰 (Arrays.sort() 와 Collections.sort())
최근 백준 - 수 정렬하기 2 라는 문제를 풀다가 이상한 상황을 겪었다. Link : https://www.acmicpc.net/problem/2751 아니 배열에 담아 Arrays.sort() 해서 출력하면 시간초과가 나고 ArrayList에 담아 Collections.sort()
laugh4mile.tistory.com
반응형