알자시리즈 - #2 [Arrays] 그리고 {Objects} 성능 측정

알고리즘
자료구조
JavaScript
📝 2019년 05월 02일

커버
알자시리즈

Udemy 강의를 듣고 직접 정리한 요약본입니다.

Object

  • 정렬되지 않아 있으며, key-value 쌍을 이룬다.
let instructor = {
  firstName: "Kelly",
  isInstructor: true,
  favoriteNumbers:[1,2,3,4]
}

언제 Object를 사용하는가?

  • 순서가 필요 없을 때
  • 빠른 접근/삽입 그리고 제거가 필요할때

Object의 Big-O

Object의 Big-O
Object의 Big-O

  • 순서가 필요 없을때, objects가 매우 좋은 선택이다!

Object 메서드의 Big-O

Object 메서드의 Big-O
Object 메서드의 Big-O

Array

  • 순서있는 리스트!
let names = ["Michael","Melissa","Andrea"];

let values = [true, {}, [], 2, "Awesome"];

언제 Arrays를 사용하는가?

  • 순서가 필요할때
  • 빠른 접근 + 삽입/제거(어느정도..)

언제 Arrays를 사용하는가?
언제 Arrays를 사용하는가?

  • Insertion

    • 맨 앞에 삽입 ⇒ 배열 각 엘리먼트의 인덱스를 뒤로 밀어줘야함 ⇒ O(n)
    • 맨 뒤에 삽입 ⇒ O(1)
  • Remove

    • 맨 앞에 삭제 ⇒ 배열 각 엘리먼트의 인덱스를 앞으로 당겨줘야함 ⇒ O(n)
    • 맨 뒤에 삭제 ⇒ O(1)

즉, push/pop 이 언제나 shift보다 빠르다

Array Operation의 Big O

Untitled 7087343b 3862 425e 97fc 461bf5a38e39
전부 알 필요는 없다.