[JS 알고리즘] 정렬 알고리즘

Marco·2021년 12월 4일
0
post-thumbnail
  • 정렬 알고리즘이란, 컬렉션(예를 들어 배열)의 항목을 재정렬하여 항목이 일종의 순서로 정렬되도록 하는 과정을 의미한다.
  • 정렬 알고리즘 시각화 영상(참고)

https://www.youtube.com/watch?v=kPRA0W1kECg

  • 왜 정렬 알고리즘을 알아야 할까?
    • 정렬은 매우 일반적인 작업이므로 작동 방식을 아는 것이 좋다.
    • 여러 가지 정렬 알고리즘이 있고, 각각 장단점이 있다.
      • 예를 들어, 한 두 개 정도만 정렬되어 있지 않고 나머지는 거의 정렬된 데이터를 빠르게 정렬하려고 할 때, 더 효율적인 알고리즘(삽입 정렬)이 있다. 이러한 사례는 아래의 정렬 알고리즘 애니메이션 페이지에서 확인할 수 있다. Sorting Algorithms Animations
    • 정렬에는 때때로 단점이 있으므로 탐색 방법을 이해하는 것이 좋다.
  • 자바스크립트에는 정렬 방법이 있으나, 항상 예상대로 작동하는 것은 아니다. sort() 메서드는 기본적으로 유니코드를 기준으로 글자를 정렬한다. 따라서 자바스크립트에 내가 의도한 정확한 정렬 방법을 알려줘야 한다.
    • 내장 정렬 메소드는 comparator 함수 를 사용할 수 있는데, 이것을 가지고 자바스크립트에게 어떻게 정렬하고자 하는지 말할 수 있다.
      • comparator는 요소의 쌍(ex, a and b)을 보고, 반환 값에 따라 그들의 정렬 순서를 결정한다.
        • 음수가 반환되면, a는 b 이전에 온다.
        • 양수가 반환되면, a는 b 이후에 온다.
        • 0이 반환되면, a와 b는 정렬에 관한 한 같은 것으로 취급하고 둔다.
console.log([6, 4, 15, 10].sort((a, b) => a - b)); // [ 4, 6, 10, 15 ]
console.log([6, 4, 15, 10].sort((a, b) => b - a)); // [ 15, 10, 6, 4 ]
profile
블로그 이사 🚚 https://wonsss.github.io/

0개의 댓글