TIL#50 자료구조-Array, Tuple

Dasom·2020년 8월 31일
0

자료구조

목록 보기
5/8

오늘 session에서는 자료구조의 제일 기본인 array 와 tuple 에 대해 배웠다. 사전스터디 기간에 조금 공부한 적이 있기 때문에 다시 한번 떠올리고 복습(?)을 하는 기분이 들어 예습이 정말 중요하다는 것을 다시 한번 깨달았다😝

이전에 올린 배열 블로그

자료구조

데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법.
상황과 문맥에 맞게 데이터를 담을 수 있는 적절한 구조이다.

Array(배열)

가장 기초적이고 단순하면서도 가장 자주 사용되는 자료구조
python에서는 list이다.

  • 가장 큰 특징 : 순차적으로(ordered) 데이터를 저장
  • 자료구조에 저장하는 데이터는 요소(element)라고 한다.
  • 주로 서로 연결된 데이터들을 순차적으로 저장할 때 사용한다.
  • 이미 생성된 리스트도 수정 가능(mutable)
  • 동일한 값도 여러번 삽입 가능
  • index를 사용해 특정 요소를 곧바로 읽어들일 수 있다
  • 특정부분, n번째 index부터 m번째 index까지 따로 분리해서 조작 가능

단점

  • 항상 메모리가 순차적으로 이어져 있어서 중간에 있는 데이터를 삭제하거나 삽입하는 경우 그 요소로부터 뒤에 있는 요소들을 당기거나 밀어야 해서 다른 자료구조에 비해 속도가 느릴 수 있다.

Array resizing
처음 생성될 때 어느 정도 메모리를 미리 할당한다. pre-allocation이라고 한다.
요소들이 처음 할당한 메모리 이상으로 많아지면 resizing 이 필요하여 메모리를 더 할당해야 한다

언제 사용하는 것이 좋을까

  • 순차적인 데이터를 저장할때. 예) 주식 가격: 값보다는 순서가 중요한 데이터
  • 다차원데이터를 다룰 때
  • 어떠한 특정 요소를 빠르게 읽어야 할 때 -> index를 이용해 바로 읽을 수 있다
  • 데이터의 사이즈가 자주 변하지 않을 때
  • 요소가 자주 삭제되거나 추가되지 않을 때

Tuple(튜플)

  • list 와 마찬가지로 순차적으로 저장 가능한 자료구조
  • list 와 다르게 한번 정의되고 나면 수정할 수 없음(immutable)
  • 2-3개 정도의 적은 수의 소규모 데이터를 저장할 때 많이 사용
  • 간단한 값을 빨리 표현하고 싶을 때 사용
  • list 보다 더 가볍고 메모리 사용량도 적다

단점
데이터가 무슨 의미인지 명확하지 않다. 데이터의 의미를 문맥을 보고 가정해야 한다.

언제 사용하는 것이 좋을까

  • 간단한 데이터들을 표현할 때. 예) 좌표 데이터
profile
개발자꿈나무🌲

0개의 댓글