본문 바로가기
TIL/ZTM Data Structures and Algorithms

ZTM Data Structures & Algorithms - Array

by Dev_Dank 2021. 7. 25.

udemy 에서 Master the Coding interview: Data Structures & Algorithms 강의를 수강한 내용을 정리하는 포스팅입니다.


Array

- 배열은 연속된 메모리내의 데이터의 집합으로 이루어진 자료구조를 의미한다.
- 자바스크립트의 경우 배열의 크기를 미리 정해놓지 않고 사용하여 Dynamic Array 를 사용하는 것으로 볼 수 있다. 
- push 나 pop 이 아닌 insert 나 delete 작업의 경우 시간 복잡도가 O(n) 이다.
-인덱스를 알면 원하는 정보에 빠르게 접근가능하다.
-자바스크립트의 배열은 객체이며 따라서 클래스를 이용해 스스로 구현할 수 도 있다. 

class MyArray {
constructor() {
this.length = 0;
this.data = {};
}
get(index) {
return this.data[index];
}
push(item) {
this.data[this.length] = item;
this.length++;
return this.data;
}
pop() {
const lastItem = this.data[this.length - 1];
delete this.data[this.length - 1];
this.length--;
return lastItem;
}
deleteAtIndex(index) {
const item = this.data[index];
this.shiftItems(index);
return item;
}
shiftItems(index) {
for (let i = index; i < this.length - 1; i++) {
this.data[i] = this.data[i + 1];
}
console.log(this.data[this.length - 1]);
delete this.data[this.length - 1];
this.length--;
}
}


- 배열자료구조의 장단점은 아래와 같다. 

 

 

댓글