kdr06006   4년 전

모스알고리즘을 공부중인데, 두 코드의 수행속도 차이에 대해 질문드립니다.

25, 26번째 줄을

if (query[i].s < query[j].s) temp[k++] = query[i++]; 

 else if (query[i].s == query[j].s && query[i].e < query[j].e) temp[k++] = query[i++];

이런 식으로 짜면 800ms나 걸리는데 아래 코드와 같이 바꾸면 100ms로 줄어듭니다.

왜 이렇게 큰 차이가 나는지 잘 모르겠습니다.

djm03178   4년 전

말씀하신 코드는 모스 알고리즘이 전혀 아닌 것 같은데요. 그러면 최악의 경우 시간 복잡도가 O(NM)이라 시간 초과가 나야 할 것 같은데 오히려 데이터가 약해서 빠르게 통과되는 게 아닌가 싶습니다.

kdr06006   4년 전

아 그래요? 죄송합니다

공부를 더 깊이있게 하고 질문을 하겠습니다.

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