[JavaScript] array

zwundzwzig·2022년 7월 25일
0

[javascript]

목록 보기
4/13
post-thumbnail
  • 시간 복잡도 (time complexity)
    데이터 구조의 오퍼레이션 or 알고리즘이 얼마나 빠르고 느린지 측정하는 방법
    실제 '시간'을 측정하는 방법이 아니라, '얼마나 많은 단계가 있는 가?'로 측정

  • 메모리 관점에서 array가 어떻게 보일까?

그전에 메모리의 2가지 종류에 대해 알아보자
1. 휘발성 메모리 volatile memory - ex) RAM radom access memory, program variable
2. 비휘발성 메모리 non-volatile memory - ex) cpu 하드드라이버
데이터 읽는 속도 : 휘발성 메모리 > 비휘발성 메모리
왜냐하면, 휘발성 메모리에 접속하는 방법은 순차적이 아닌, random하게 접근 가능하기 때문

돌아와서, 메모리 관점에서 array가 생성될 때, 할당된 복수의 memory address를 정해 놓는다.
javascriptpython 등의 프로그램은 개발자들이 모르는 사이에 스스로 핸들링하고 있는 반면,C와 같은 언어는 프로그램이 직접 핸들링하지 않기 때문에 상대적으로 더 빠른 속도를 지니고 있다.

1. 어떻게 array를 읽나?

array의 첫 번째 요소element는 0으로 읽혀 index 한다.
특유의 random access 로 인해 많은 자료를 읽을 때 용이하다. array의 최대 장점

2. 어떻게 array를 검색하나?

주로 0부터 순차적으로 검색하는 선형 검색 linear search 방법을 취하고 있기 때문에, 배열의 검색은 그닥 빠르지 않다.
(배열의 검색을 빠르게 하는 방법은 추후 삽입 예정)

3. 어떻게 array에 삽입하나?

  1. array가 확보했지만 비어있는 공간에 삽입insert하는 경우는 어렵지 않다.
  2. 새로운 요소가 비어있지 않은 공간에 삽입되려면 끝에 있는 요소부터 순차적으로 이동해 공간을 확보한 뒤 삽입해야 한다.
  3. 새로운 요소로 인해 공간이 부족한 경우에는, 새로운 array를 생성하고 이전 것을 복사 붙여넣기 해야된다.

4. 어떻게 array에서 삭제하나?

  1. 마지막 요소를 삭제delete하려면, 해당 공간 자체를 없애면 된다.
  2. 삽입할 때와 마찬가지로, 처음 혹은 중간 요소를 삭제하려면 각각 요소의 이동이 필요하다.
profile
개발이란?

0개의 댓글