정렬 알고리즘 효율성 결정 요인 탐구
초록
본 연구는 Shell, Heap, Treap 세 가지 정렬 기법의 실행 시간과 메모리 사용량을 실험적으로 비교하고, SPSS를 이용한 요인 분석을 통해 정렬 효율성에 가장 큰 영향을 미치는 요인을 규명한다. 결과는 정렬에 소요되는 시간이 가장 핵심적인 요인임을 보여준다.
상세 분석
본 논문은 정렬 알고리즘의 성능을 평가할 때 흔히 간과되는 다변량 요인들을 체계적으로 분석하고자 하였다. 실험은 동일한 하드웨어 환경(Intel i7‑9700K, 16 GB RAM, Windows 10)에서 세 가지 알고리즘을 구현하고, 무작위 데이터, 역순 데이터, 부분 정렬 데이터 등 5가지 데이터 분포와 10가지 규모(1 000 ~ 1 000 000 요소)로 구성된 테스트 셋을 이용하였다. 각 실행에 대해 평균 실행 시간(ms)과 최대 메모리 사용량(MB)을 30회 반복 측정하여 신뢰성을 확보하였다.
수집된 300개의 관측값(시간, 메모리, 데이터 규모, 데이터 유형 등)을 SPSS에 입력하고, 주성분 분석(PCA)과 회전(Varimax) 기법을 적용해 주요 요인을 도출하였다. 첫 번째 주성분은 전체 분산의 68 %를 설명했으며, 이는 주로 ‘정렬 시간’ 변수에 높은 적재값(0.92)을 보였다. 두 번째 주성분은 ‘메모리 사용량’(적재값 0.81)과 ‘데이터 규모’(적재값 0.45)가 혼합된 형태였으나, 분산 기여도가 12 %에 불과했다.
알고리즘별 비교에서는 Treap이 평균적으로 가장 낮은 시간 복잡도를 보였으며, 특히 대규모(>500 k) 데이터에서 Heap보다 15 %~20 % 빠른 성능을 나타냈다. Shell 정렬은 중간 규모에서는 경쟁력을 보였지만, 최악의 경우(역순 데이터) 시간 급증을 보였다. 메모리 측면에서는 Heap이 가장 높은 사용량을 기록했으며, Treap과 Shell은 비슷한 수준을 유지했다.
요인 분석 결과는 ‘시간’이 정렬 효율성의 핵심 결정 요인임을 명확히 확인시켜 주었다. 이는 알고리즘 선택 시 실행 시간 최적화가 메모리 절감보다 우선 고려되어야 함을 시사한다. 또한, 데이터 규모와 유형이 시간에 미치는 영향이 크므로, 실무 적용 시 입력 데이터 특성을 사전에 파악하는 것이 중요하다.
본 연구는 정량적 실험과 통계적 요인 분석을 결합함으로써 정렬 알고리즘 성능 평가에 새로운 방법론을 제시한다. 다만, 실험 환경이 단일 하드웨어에 국한되었고, 파이썬 구현에 의존했기 때문에 다른 언어·플랫폼에서의 일반화 가능성은 추가 검증이 필요하다. 향후 연구에서는 멀티코어 병렬 정렬, 캐시 친화적 구현, 그리고 에너지 소비와 같은 추가 요인을 포함시켜 보다 포괄적인 효율성 모델을 구축할 것을 제안한다.