JS Array.sort() 함수는 어떤 정렬을 사용할까?

코몽·2022년 2월 16일
0

JS에서 sort 함수가 nlogn의 시간복잡도를 갖는다는 글을 읽고나서 무슨 정렬을 사용할까 라는 의문점이 들어 여기저기 찾아 보았다.

결론부터 말하면 Javascript chrome V8의 경우 python과 마찬가지로
insertion과 merge를 합쳐서 만든 timsort를 사용한다.
베스트 - O(n) / 평균 - O(nlogn) / 워스트 - O(nlogn) 이란다.
자세한건 아래 링크 참조
https://d2.naver.com/helloworld/0315536

정확히 말하면 timsort는 binary insertion sort와 merge sort를 사용하며
stable sort이다. (같은 크기의 element들을 정렬할 경우 위치를 변경 X)

결국 브라우저마다 사용하는 JS 엔진이 다르고 엔진마다 적용된 알고리즘이 다르다.
이에 제일 많이 사용하는 크롬 V8 기준으로는
Timsort - O(nlogn) 정도로 알고 있으면 될 것 같다.

profile
프론트엔드 웹 개발자(React) https://code-d-monkey.tistory.com/

0개의 댓글