mesahwi   6년 전

끝나는 시간을 기준으로 오름차순 정렬을 하고

끝나는 시간이 같을 경우 시작 시간을 기준으로 오름차순 정렬을 했습니다.

그런데 15% 근처에서 시간초과가 뜹니다ㅠㅠ

왜이럴까요?


djm03178   6년 전

퀵소트는 최악의 시간복잡도가 O(N^2)이고, 이러한 데이터가 있을 가능성은 매우 높습니다. 이미 정렬된 순서로 입력을 주기만 하면 되기 때문입니다. naive한 퀵소트의 사용은 지양해야 합니다.

topology   6년 전

퀵소트는 deterministic하게 구현할 경우 @djm03178 님의 말씀처럼 최악의 경우 $O(N^2)$이 걸리기 때문에, 난수화(randomize) 시킬 때 비로소 진가를 발휘합니다.

java.util.Random을 활용해서 pivot을 랜덤으로 골라보세요.

댓글을 작성하려면 로그인해야 합니다.