JavaScript의 데이터 구조 - Lee-hyuna/33-js-concepts-kr GitHub Wiki

data-strucures 시리즈 정보

data-structures 시리즈는 JavaScript로 재구현 된 데이터 구조에 대한 게시물 모음이다.

데이터 구조에 익숙하지 않은 경우에 JavaScript의 데이터 구조에 대한 시리즈의 게시물에서
빠른 소개 및 재구현 된 젠체 데이터 구조 목록을 확인 할 수 있다.

각 데이터 구조의 개념에 익숙하고 코드만 보고 싶으면 시리즈의 요약 게시물을 봐라. 모든 설명을 제거하고 시리즈에서 논의 된 모든 데이터 구조에 대한 JavaScript 코드만 포함한다.

Github에서 코드 가져오기

물론 모든 코드는 JavaScript 데이터 구조의 Github에서도 찾을 수 있다. github

데이터 구조는 무엇인가?

데이터 구조가 무엇인지 다시 설명하는 대신 wikipedia가 만든 완벽한 설명을 보는게 좋다.

컴퓨터 과학에서 데이터 구조는 컴퓨터에서 데이터를 구성하여 효율적으로 사용할 수 있는 특별한 방법이다.
- 위키 백과 -

여기서 "효율적인 사용" 은 사용자의 필요에 따른 것을 의미한다.
예를들어 매우 빠른 조회를 허용하거나 매우 빠른 삽입 또는 응용 프로그램과 관련된 항목이 될 수 있는
구조가 필요할 수 있습니다.

기억해야 할 것은 각 데이터 구조마다 고유 한 장단점이 있다는 것이다.
그 중 하나가 다른 모든 것을 이길 수 없으므로 모두 아는 것이 중요하다.

복잡성

데이터 구조에 대해 들으면 복잡성에 대해 확실히 들을 수 있다.
모든 데이터 구조에는 고유의 장단점이 있기 전에, 특정 문제에 따라 고유의 장단점을 쉽게 표현하는 방법으로
복잡성을 이해할 수 있다.

복잡성은 공간과 시간의 두 축으로 표현된다.

공간

공간 복잡도는 데이터 구조의 메모리 소비를 나타낸다.
인생의 대부분의 것들에 관해서 모든 것을 가질 수 없으므로 데이터 구조와 관련이 있다.
일반적으로 공간이나 다른 방법으로 시간을 투자해야합니다.

시간

데이터 구조의 시간 복잡도는 일반적으로 공간 복잡도 보다 다양하다.

여러 작업들

알고리즘과 달리 데이터 구조의 시간 복잡성을 살펴보면 데이터 구조로 수행 할 수 있는 여러 작업에 대해
데이터 구조를 표현해야 한다.
요소 추가, 요소 삭제, 요소 액세스 또는 요소 검색이 될 수 있다.

데이터에 따라 다름

시간 복잡성에 대해 이야기 할 때 데이터 구조와 알고리즘이 공통적으로 갖는 것은 데이터를 다루고 있다는 것이다.
데이터를 처리 할 때 데이터에 의존하게 되고 겱4ㅘ적으로 시간 복잡도는 수신 한 데이터에 의존한다.
이 문제를 해결하기 위해 3가지 다른 시간 복잡성에 대해 이야기한다.

  • 가장 복잡한 경우 : 데이터가 가장 좋아 보일 때
  • 최악의 경우 : 데이터가 최악인 경우
  • 평균 사례 복잡성 : 데이터가 평균으로 보이는 경우

큰 O 표기법

복잡도는 일반적으로 큰 O 표기법으로 표현된다.
이 주제에 대한 wikipedia 페이지는 매우 복잡하지만 여기엫서 가장 유명한 데이터 구조 및 정렬 알고리즘에 대한
다양한 복잡성을 요약 한 내용을 찾을 수 있다.