본문 바로가기
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--;
  }
}


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

 

 

댓글