royalex   1년 전

quick sort를 짜서 돌리면 시간초과가 나옵니다. quick sort 대신에 내장된 qsort를 이용하니 맞았다고 합니다. 둘 다 퀵소트일텐데 왜 시간이 다르게 나오는 지 이유를 아시는 분 있을까요?

zenith82114   1년 전

pivot을 랜덤하지 않게 (맨 처음이나 맨 끝 등) 고르는 코드를 저격하기 위한 채점 데이터가 있는 것으로 알고 있습니다.

royalex   1년 전

stdlib에 내장되어 있는 qsort함수는 피벗을 랜덤하게 고르나요?

komjun   1년 전

glibc/stdlib/qsort.c 를 확인하면 median-of-three decision tree 를 이용하여 pivot을 선택한다고 하네요

0000000000   1년 전

qsort()는 이름만 Quick Sort에서 따 왔을 뿐이지 Quick Sort로 구현되어 있다고 보장되지는 않습니다.

https://en.cppreference.com/w/cpp/algorithm/qsort에서 Notes 부분에 "Despite the name, C++, C, and POSIX standards do not require this function to be implemented using quicksort or make any complexity or stability guarantees." 라고 쓰여 있습니다.

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