javascript_algorithm / 정렬 알고리즘 / 3.1 Sorting Algorithms
3.1Sorting Algorithms
TL;DR
Sorting
Sorting은 배열이나 컬렉션 안의 항목들을 특정한 기준에 따라 정렬하는 과정을 말한다.
예를 들어:
- 숫자를 작은 것부터 큰 순서로 정렬하기
- 이름을 알파벳 순으로 정렬하기
- 영화 목록을 출시 연도 기준으로 정렬하기
정렬 알고리즘에는 다양한 종류가 있으며, 각각의 장단점이 있기 때문에 상황에 맞는 정렬 방식을 선택하려면 그 원리를 잘 이해하는 것이 중요하다.
JavaScript 내장 정렬: sort()
자바스크립트는 자체적으로 배열에 sort()
메소드를 제공하는데, 이 sort()
는 예상과 다른 결과를 부를 수 있다.
javascript[6, 4, 15, 10].sort(); // [10, 15, 4, 6]
공식문서에 따르면, 자바스크립트의 sort
는 해당 배열 원본을 변형시키며, 요소들을 우선 문자열로 바꾸고, UTF-16 코드 단위로 비교하여 정렬한다. 이 방식으론 알파벳은 예상대로 정렬할 수 있지만, 숫자들은 일반적인 우리의 예상과는 다르게 정렬된다.
대신, sort
메소드는 비교 함수(comparator)를 파라미터로 받을 수 있다. 비교함수를 직접 정의함으로 원하는 방식의 정렬이 가능해진다.
javascriptfunction numberCompare(num1, num2){ return num1 - num2 } [6, 4, 15, 10].sort(numberCompare); // [4, 6, 10, 15]