1931번 - 회의실 배정
끝나는 시간을 기준으로 오름차순 정렬을 하고
끝나는 시간이 같을 경우 시작 시간을 기준으로 오름차순 정렬을 했습니다.
그런데 15% 근처에서 시간초과가 뜹니다ㅠㅠ
왜이럴까요?
퀵소트는 최악의 시간복잡도가 O(N^2)이고, 이러한 데이터가 있을 가능성은 매우 높습니다. 이미 정렬된 순서로 입력을 주기만 하면 되기 때문입니다. naive한 퀵소트의 사용은 지양해야 합니다.
퀵소트는 deterministic하게 구현할 경우 @djm03178 님의 말씀처럼 최악의 경우 $O(N^2)$이 걸리기 때문에, 난수화(randomize) 시킬 때 비로소 진가를 발휘합니다.
java.util.Random을 활용해서 pivot을 랜덤으로 골라보세요.
댓글을 작성하려면 로그인해야 합니다.
mesahwi 6년 전
끝나는 시간을 기준으로 오름차순 정렬을 하고
끝나는 시간이 같을 경우 시작 시간을 기준으로 오름차순 정렬을 했습니다.
그런데 15% 근처에서 시간초과가 뜹니다ㅠㅠ
왜이럴까요?