TIL [Data Structure] #2. Array(List)

finelinefe·2020년 10월 19일
0

DATA_STRUCTURE

목록 보기
3/3
post-thumbnail

❗️사실 Python 에서는 List 가 Array 라고 생각하고 써도 무방합니다. 다만 엄밀히 말하자면 Array 와 List 는 다릅니다. 기능적으로는 거의 동일하지만 메모리 효율면에서는 Array 가 유리합니다. 다만 사용하기에는 List 가 훨씬 편합니다. (Python 에서 Array 를 사용하려면 import Array 모듈을 import 해서 사용해야 합니다.) 참고

💡 Array(List) 정의 및 기타특징

  • 순차적으로 데이터를 저장하는 자료구조이다
  • 자료구조에 저장하는 데이터는 요소(element)라고 한다
  • Array 의 경우 연결된 데이터의 순차적 저장을 할 때 사용한다
  • 그러나 순서에 상관없이 연결된 데이터를 저장할 때 사용하기도 한다
  • 그렇기 때문에 가장 많이 사용하는 자료구조 중 하나이다
  • Array의 요소가 Array가 될 수 있다. 다중차원 배열이라고도 한다
  • 동일값도 여러번 삽입가능. 생성된 리스트도 수정 가능
  • 삽입 순서대로 저장된다

💡 Array 구조

  • 순차적 저장 = 인덱스가 생긴다
  • 인덱스는 0부터 시작하나 -1은 맨 마지막 요소를 말한다
  • 실제 메모리 상에서도 순차저장이라 인덱싱, 슬라이싱(n번째 index 부터 m번째 index까지) 가능

💡 Array 구조의 단점

1. 요소를 제거하거나 추가할때

순차저장되어 있기 때문에 삭제할때 인덱싱 번호가 다 바뀐다. 전체적으로 다른 구조에 비해 느려진다. 또한 추가일 때도 마찬가지다. 즉, 정보가 자주 추가 및 삭제되는 경우엔 부적합

2. 사이즈를 다시 조정(Resize)할 때

순차저장되어 있기 때문에 삭제할때 인덱싱 번호가 다 바뀐다. 전체적으로 다른 구조에 비해 느려진다. 또한 추가일 때도 마찬가지다. 즉, 정보가 자주 추가 및 삭제되는 경우엔 부적합

Array를 사용하기 적합한 경우

  • 순차열적인 데이터를 저장할 때
    ex) 주식 가격. 어제의 2만원과 오늘의 2만원이 다름 >>> 값보다는 순서가 중요한 데이터
  • 다차원 데이터를 다룰 때 >>> Multi-dimensional Array
  • 어떠한 특정 요소를 빠르게 읽어야 할 때 >> index를 통해 곧바로 읽을 수 있기 때문
  • 데이터의 사이즈가 급변하게 자주 변하지 않을 때
  • 요소가 자주 삭제 되거나 추가되지 않을 때

내가 작성한 답안과 모범답안

0개의 댓글