잠깐만요
파이썬의 정렬
어렵게 정렬 알고리즘의 원리를 공부한 후에 들으면 다소 허무한 이야기지만, 파이썬, 자바, C#과 같은 최신 컴퓨터 프로그래밍 언어는 대부분 정렬 기능을 내장하고 있습니다. 파이썬에서는 sort( ) 혹은 sorted( ) 함수를 이용하면 리스트를 쉽게 정렬할 수 있습니다. 사용 방법은 다음 실행 결과를 참고하세요.
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
sorted( ) 함수는 인자로 리스트를 주면 그 리스트를 정렬한 리스트를 새로 만들어 돌려줍니다. 반면에 sort( ) 함수는 새 리스트를 따로 만들지 않고 정렬 대상이 되는 리스트 자체의 순서를 바꿔 줍니다. 기능은 같지만 약간 다르지요?
그렇다면 파이썬은 실제로 어떤 정렬 알고리즘으로 정렬을 하는 걸까요?
표준 파이썬 언어는 팀 피터스(Tim Peters)라는 사람이 만든 팀소트(Timsort)라는 알고리즘을 이용해 정렬을 합니다. 팀소트는 우리가 이미 배운 병합 정렬과 삽입 정렬의 아이디어를 적절하게 섞어 만든 새로운 정렬 알고리즘으로 평균 계산 복잡도는 O(n·logn)입니다.