Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript Array#sort() 함수는 어떤 알고리즘을 사용합니까?

<시간/>

Javascript 사양은 Array.sort 구현에 사용할 특정 알고리즘을 지정하지 않습니다. 이것은 구현자가 결정할 일입니다. 따라서 다른 JS 엔진은 다른 정렬 알고리즘을 사용합니다.

Mozilla(Spider Monkey JS 엔진)는 mergeSort를 사용합니다. Mozilla 저장소에서 C로 작성된 코드를 볼 수 있습니다. https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit(Chrome, Safari 등)은 정렬 알고리즘을 직접 사용하지 않고 배열의 요소 유형과 길이를 기반으로 알고리즘을 선택합니다. 예를 들어,

숫자 배열은 C++ 표준 라이브러리의 빠른 정렬 기능을 사용합니다.

숫자가 아닌 배열은 병합 정렬을 사용합니다.

다른 경우에는 선택 정렬을 사용합니다.

배열을 정렬하는 데 사용할 알고리즘은 배열 요소의 데이터 유형과 크기에 따라 다릅니다.