CS 기초 · 중급
정렬 알고리즘들(퀵 정렬, 병합 정렬, 힙 정렬)의 시간 복잡도와 특징을 비교해주세요.
힌트 · 안정성, 제자리 정렬, 최악의 경우를 비교해보세요.
퀵 정렬병합 정렬힙 정렬시간 복잡도최선/평균/최악
모범답안
면접관님, 퀵 정렬, 병합 정렬, 힙 정렬은 모두 효율적인 정렬 알고리즘이지만, 시간 복잡도와 특징에서 차이가 있습니다.
퀵 정렬은 평균적으로 O(n log n)의 시간 복잡도를 가지며, 제자리 정렬(in-place sort)이라는 장점이 있습니다. 하지만 최악의 경우 O(n^2)까지 시간 복잡도가 증가할 수 있고, 안정 정렬(stable sort)은 아닙니다.
병합 정렬은 항상 O(n log n)의 시간 복잡도를 보장하며, 안정 정렬이라는 특징이 있습니다. 하지만 제자리 정렬이 아니기 때문에 추가적인 메모리 공간이 필요합니다.
힙 정렬 역시 O(n log n)의 시간 복잡도를 가지며, 제자리 정렬입니다. 하지만 일반적으로 퀵 정렬보다는 성능이 조금 떨어지는 경향이 있고, 안정 정렬은 아닙니다.
따라서 데이터의 특성과 메모리 사용량 등을 고려하여 적절한 정렬 알고리즘을 선택하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.