[python] Python의 내장 sort () 메서드 정보

sort()파이썬에 내장 된 방법 은 어떤 알고리즘을 사용합니까? 해당 메서드의 코드를 볼 수 있습니까?



답변

확실한! 코드는 여기에 있습니다 . 함수로 시작 islt하여 잠시 QUITE를 진행합니다 .-). Chris의 의견에서 알 수 있듯이 C 코드입니다. 또한 텍스트 설명, 결과 등을 위해이 텍스트 파일 을 읽고 싶을 것입니다 .

C 코드보다 Java 코드를 읽는 것을 선호한다면 Joshua Bloch의 timsort 구현 및 Java 용 (1997 년에 Java에서 여전히 사용되는 수정 된 mergesort를 구현 한 사람이기도합니다. Java가 결국 그의 최근 팀 소트 항구로 전환).

timsort의 Java 포트에 대한 몇 가지 설명은 여기 , diff는 여기 (필요한 모든 파일에 대한 포인터 포함), 키 파일은 여기에 있습니다 . FWIW, 저는 Java 프로그래머보다 더 나은 C 프로그래머입니다. Joshua의 Java 코드는 Tim의 C 코드보다 전반적으로 더 읽기 쉽습니다 .-).


답변

Alex의 포괄적 인 답변에서 놓친 매우 유용한 링크 인 Python의 timsort에 대한 높은 수준의 설명 (그래프 시각화 포함!)을 제공하고 싶었습니다 .

(예, 알고리즘은 현재 기본적으로 Timsort알려져 있습니다.)


답변

초기 파이썬 버전에서 sort 함수는 수정 된 버전의 quicksort를 구현했습니다. 그러나 불안정한 것으로 간주되어 2.3에서 적응 형 병합 정렬 알고리즘을 사용하도록 전환했습니다.


답변