안녕하세요, 프로젝트 진행하다 궁금한 점이 생겨 문의드립니다.
(d), (e)에서 튜닝 작업을 거쳐 최적의 M을 찾으라고 되어있는데,
이 튜닝작업이 어떤 것을 의미하는지 잘 모르겠어서.. 질문 드립니다. 어떤 식으로 M을 구하면 될까요?
M에 직접 숫자를 선언한 후 보고서에 이를 설명해야 하는지, 아니면 코드에서 적절한 M을 구한 후 적용하는 것인지도 여쭤보고 싶습니다.
감사합니다.
2018.11.02 16:05
2018.11.02 17:59
본문의 답변 ******************
d, e의 M을 찾으라는 말은, 테스트를 직접 돌려보시라는 말입니다.
직접 M을 이변수 저변수 설정을 해보시면서 최적의 M이 어떤 숫자인지, 찾아 보시고 찾는 과정등을 보고서에 작성해주시면 됩니다.
시간을 기준으로 판단해보시면 될 것 같습니다.
(d)는 M개 이하에 대해서 Selction sort를 돌리는 것이고
(e)는 M개 이하가 되면 아무 작업도 하지 않고, quicksort가 종료되면 대략적으로 정렬된 데이터에 대해 insertion sort를 작업합니다.
댓글의 답변 ******************
(c)랑 유사한게 맞습니다. 하지만 M을 직접 찾아주셔야겠죠.
N이 현 시점에서 정렬하고자 하는 data의 크기라면 이해하신게 맞습니다.
(e)도 마찬가지로 M을 찾아주시면 되겠습니다.
다른 사람 글에 죄송합니다. 같은 (d), (e) 질문이라서 댓글로 남깁니다.
(d) 에서 M개 미만인 부분은 Selection 으로 정렬하라고 되어 있는데, 그럼 (c)문제와 거의 유사한 것으로 봐도 될까요?
(이유 : (c)에서도 3개 이하이면 직접 정렬하는 것이니, (d)에서도 M개 이하이면 selection으로 돌리면 된다고 생각했습니다.)
즉, if (N >= M) quick_sort_PSS
else selection_sort
인것인가요? (이때, N은 전역변수로 설정하였고, M은 define했습니다)
만약 이 방법이 옳은 것이라면 (e)도 마찬가지로 적용하라는 것이죠?