Data Structures List, Tuple

sjp5554·2020년 5월 17일
0

What is Data Structure

자료 구조란 데이터의 편리한 접근과 조작을 가능하게 하는 데이터를 저장하거나 조직하는 방법입니다.
문맥과 데이터의 종류에 따라 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 큰 영향을 끼치기에, 자료구조의 다양한 종류와 각각의 장점과 한계를 잘 이해하고 상황에 맞게 올바른 자료 구조를 선택하고 사용하는 것이 중요합니다.

Types of Data Structures

Array(List)

  • storing data in insertion order, iterable
  • mutable
  • allow repeting elements
  • multi-dimensional array is possible: arrays within arrays

Why do arrays store data in same order as insertion sequence?

Array는 메모리 상에서, 즉 물리적으로 데이터가 순차적으로 저장되기 때문입니다.
또한 Array는 메모리의 실제 주소도 순차적으로 되어있기에 indexing이 가능한 것을 비롯하여 여러 가지 장점이 있지만 그에 따른 단점도 존재합니다.

Advantages

데이터에 순서가 있기 때문에 0부터 시작하는 index가 존재하며, index를 사용해 특정 요소를 찾고 조작이 O(1)의 시간 복잡도로 가능하다는 것이 Array의 장점입니다.

Disadvantages

순차적으로 존재하는 데이터의 중간에 요소가 삽입되거나 삭제 되는 경우 그 뒤의 모든 요소들을 한칸씩 뒤로 밀거나 당겨줘야 하는 단점이 있습니다. 이러한 경우 메모리 상에서 이루어지는 작업이 다른 자료구조에 비해 커지기 때문에 Array 는 정보가 자주 삭제 되거나 추가되는 데이터를 담기에는 적절치 않습니다.

5. 언제 사용하면 좋을까요?

  • 순차열적인 데이터를 저장할 때
    • ex) 주식차트: 주식 차트에 대한 데이터는 요소가 중간에 새롭게 추가되거나 삭제되는 정보가 아니며, 날짜별로 주식 가격이 차례대로 저장되어야 하는 데이터입니다. 즉, 순서가 굉장히 중요한 데이터 이므로 Array 같이 순서를 보존 해주는 자료구조를 사용하는 것이 좋습니다. 이와 같은 데이터에 Array를 사용하지 않는 경우, 순서가 없는 자료 구조를 사용하는 경우에는 날짜별 주식 가격을 확인하기 어려우며 매번 전체 자료를 읽어 들이고 비교해야 하기에 번거로울 것입니다.
  • 다차원 데이터를 다룰 때 >>> Multi-dimensional Array
  • 어떠한 특정 요소를 빠르게 읽어야 할 때 >> index를 통해 곧바로 읽을 수 있기 때문
  • 데이터의 사이즈가 급변하게 자주 변하지 않을 때
  • 요소가 자주 삭제 되거나 추가되지 않을 때

Tuple

  • Immutable
  • Small scale data with 2~3 elements
  • When you want to return more than one value in functions (ex-map coordinates)
  • More lightweight, less memory-consuming than arrays

Disadvantages

  • unclear of the meaning of the data (named tuple may help in this case)

0개의 댓글