Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

어읽로꾸거

[Javascript] 알아야 할 7가지 자료형 본문

정리

[Javascript] 알아야 할 7가지 자료형

어읽로꾸거 2020. 11. 9. 18:20

www.educative.io/blog/javascript-data-structures

[

7 JavaScript data structures you must know

Data structures are a foundational part of JS programming, whether you're just starting out or you've been coding for years. Let's look at the 7 data structures you should never forget.

www.educative.io

](https://www.educative.io/blog/javascript-data-structures)

이 글을 거의 번역함 보면 그냥 어떤 언어든 다 맞는말인거 같은데 왜 궂이 JS?

Array

  • 장점
    • 쉽게 만들수있음
    • 복잡한 자료구조를 위한 기초
  • 단점
    • 고정된 크기
    • 삽입/제거에 시간복잡도 큼
    • 정렬하기 비효율적(트리 이런거에 비해서 인듯?)
  • 응용
    • 기본적 스프레드 시트
    • 해쉬테이블

Queue

  • 장점

    • 동적인 크기
    • 선입선출
    • 런타임 적음 ??
  • 단점

    • 오래된 것만 받을 수 있음
  • 응용

    • 자주 자료를 받는 버퍼
    • 순서가 중요한 음성메일
    • 오래된 데이터가 먼저 처리되도록 함

    Linked List

  • 장점

    • 효과적으로 추가/제거 가능
    • Array 보다 덜 복잡하게 Restructing 가능
  • 단점

    • Array 보다 많은 메모리 사용
    • 특정 순번 원소 탐색에 비효율적
  • 응용

    • 알지 못하는 위치에 빠른 추가 제거가 필요한 구조

Tree

  • 장점
    • 수직적 관계의 저장에 이상적
    • 동적인 크기
    • 추가와 제거가 빠름
    • BST에서 삽입된 노드는 연속적으로 이어진다
    • BST는 검색에 효율적
  • 단점
    • 노드 재배열하기에 느림
    • 자식 노드는 부모 노드에 대한 정보가 없음(이건 만드는사람에 따라 다를텐데)
    • BST는 해쉬테이블보다 느림
    • BST는 균형이 맞지 않으면 선형시간이 걸림(Balanced BST가 좋지)
  • 응용
    • 파일 저장할때
    • 검색/순서를 나열할때 매우 휼륭함

Graphs

  • 장점
    • 글자보다 빠르게 시각적으로 전달 가능
    • 다양한 숫자들의 모델의 관계를 전달할 수 있음
  • 단점
    • 높은 수준에서, 글자를 이미지로 변환하는데 오래걸릴수 있음
    • 얼마나 많이 연결되어있는지 보기 힘들 수 있음
  • 응용
    • 네트워크 표현
    • 페북같은 SNS

Hash Tables (Map)

  • 장점
    • Key는 어떤 형태도 될 수 있음(배열은 숫자만 올 수 있음)
    • 매우 효과적인 검색 함수
    • 검색을 할때 일정한 회수의 연산
    • 추가와 제거에 일정한 비용이 듬
  • 단점
    • 충돌 : 2개의 해쉬코드가 같거나 같은 값을 가리킬 경우 오류뜸
    • 이런 에러는 흔하고 해쉬 함수를 검사좀 해봐야 한다
  • 응용
    • 데이터베이스 저장소
    • 이름으로 주소찾기