인프런 커뮤니티 질문&답변

dev_traveler님의 프로필 이미지

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Dynamic Array는 어떤 자료구조 인가요? (외 1문제)

javascript array 는 Dynamic Array 인가요?

해결된 질문

작성

·

565

3

자바스크립트 배열은 길이가 가변적인데 그럼 Dynamic Array 라고 볼 수 있겠죠?

근데 자바스크립트 배열에서 rezise 는 어떻게 이뤄질까요?

doubling 되나요? 그럼 Dynamic Array 의 단점을 가지고 있는건가요?

답변 2

2

안녕하세요 avenJ님 javascript의 배열은 일반적으로 자료구조로 포현되는 array와는 좀 다릅니다

자세한 내용은 이 링크에서 확인해주세요

 

https://poiemaweb.com/js-array-is-not-arrray

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array

dev_traveler님의 프로필 이미지
dev_traveler
질문자

선비님, 답변 감사합니다! :-)

선비님께서 주신 링크를 요약하면 아래와 같습니다.

 

1. 강의에서 설명하는 일반적인 배열은 밀집 배열(dense array)이다.

2. 밀집 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 구조다.

3. 이러한 특징으로 밀집 배열은 단 한번의 연산으로 임의의 요소에 접근할 수 있다. (random access의 시간 복잡도 O(1))

4. 자바스크립트의 배열은 일반적인 배열의 동작을 흉내낸 특수한 객체(해시 테이블로 구현된 객체)다.

5. 배열의 요소를 위한 메모리 공간이 동일한 크기를 갖지 않아도 되고, 연속적으로 이어져 있지 않을 수도 있다.

6. 이러한 특징으로 자바스크립트의 배열은 인덱스로 배열의 요소에 접근하는 경우, 일반적인 배열보다 성능적인 면에서 느릴수 밖에 없는 구조적인 단점을 갖는다.

7. 하지만 특정 요소를 탐색하거나 삽입/삭제 하는 경우, 일반적인 배열보다 빠른 성능을 기대할 수 있다. (자바스크립트는 random access 성능 보다 탐색/삽입/삭제 경우의 성능을 택함)

8. 모던 자바스크립트 엔진은 배열을 일반 객체와 구별하여 보다 배열처럼 동작하도록 구현했다.

 

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

좋은 질문과 좋은 답변 감사드립니다!!