답변 1
1
실무에서는 대부분 직접 정렬 알고리즘을 구현하기보다, 언어나 라이브러리에서 제공하는 정렬 함수를 그대로 사용합니다. 예를 들어 파이썬의 sort()는 팀정렬을, C++의 std::sort()는 퀵정렬과 힙정렬을 혼합한 방식을 씁니다. 이렇게 하면 일반적인 데이터에서 가장 빠른 성능을 자동으로 얻을 수 있습니다.
하지만 상황에 따라 특정 알고리즘이 선택되기도 합니다. 예를 들어 거의 정렬된 데이터라면 삽입정렬이 오히려 더 효율적이고, 대용량 데이터를 외부 저장소(디스크 등)에 분할해 다룰 때는 병합정렬이 자주 쓰입니다. 또 실시간 시스템이나 메모리 사용량이 중요한 환경에서는 힙정렬처럼 일정한 메모리를 사용하는 알고리즘을 선호하기도 합니다.
결국 실무에서는 알고리즘을 직접 구현하기보다, 데이터의 크기·정렬 정도·메모리 제약 등을 고려해 어떤 방식이 내부적으로 쓰이는지를 이해하고 선택적으로 활용하는 쪽이 중요합니다.