취미와 밥줄사이

[ 자료구조 ] 배열(Array)이란? 본문

Python/자료구조

[ 자료구조 ] 배열(Array)이란?

취미와 밥줄사이 2022. 3. 5. 02:09

배열(Array)이란?

  • 배열은 메모리 상에 데이터(원소)를 연속하게 배치한 자료구조

  • 배열은 같은 타입의 데이터를 여러개 나열한 선형 자료구조
  • 연속적인 메모리 공간에 순차적으로 데이터를 저장
  • 배열은 선언할 때 크기를 정하면, 그 크기로 고정이 된다.
  • 선언된 값은 다시 배열을 선언하지 않으면 변경할 수 없다.
  • 배열의 주소를 살펴보면, 한 칸마다 배열의 자료형의 크기를 가지고 있따.

  • 배열의 자료형이 int라면, 배열 한 칸의 크기는 int(4byte)가 되는 것이다.
  • 배열은 인덱스를 통해서 배열에 있는 요소에 접근할 수 있다.

배열의 특징

  • 추가적으로 소모되는 메모리 양(=overhead)가 거의 없다
  • Cache hit rate가 높다.
    • cache hit ratio: 적중률 = (캐시히트 횟수)/(전체 참조횟수)
    • cache hit: 참조하려는 데이터가 캐시에 존재할 떄 캐시 히트
    • cache miss: 참조하려는 데이터가 캐시에 존재하지 않을 때 캐시미스
  • 배열을 생성하려면 메모리 상에 연속된 구간을 할당해야 해서 할당에 제약이 걸릴 수 있음

배열을 사용해야하는 상황

  • 데이터 개수가 확실하게 정해져 있을 때 데이터 저장을 위한 자료구조로 선택하면 좋음
  • 삽입/삭제 작업이 적을 때 사용하면 좋음
  • 배열에 저장된 데이터를 검색하는 작업이 많을 때( 인덱스로 빠르게 검색 가능)

 

REFERENCE

https://choheeis.github.io/newblog//articles/2020-12/data-structure-array

 

[자료구조] 1. Array(배열) | choheeis

자료구조의 개념과 간략한 설명에 대해서는 이 블로그의 다른 포스팅 - 꼭 알아두어야 할 자료구조 에서 볼 수 있다.✍🏻 버킹독 실전 알고리즘 강의 - 3강 배열편 을 참고하여 작성합니다.1️⃣

choheeis.github.io

https://opentutorials.org/module/1335/8677

 

배열 - Data Structure (자료구조)

이번 시간에는 배열을 배워봅시다. 배열은 거의 모든 프로그래밍 언어에 포함되어 있습니다. 따라서 여러분도 배열이 무엇인지에 대한 기본적인 이해는 하고 계실 것입니다. 여기서는 배열을

opentutorials.org

https://progdigest.blogspot.com/2017/07/cache-hit-ratio.html

 

캐시가 필요한 이유와 Cache hit ratio

캐시가 필요한 이유 : 대부분 프로그램은 한번 사용한 데이터를 다시 사용할 가능성이 높고, 그 주변의 데이터도 곧 사용할 가능성이 높은 데이터 지역성을 가지고 있다. 데이터 지역성을 활용

progdigest.blogspot.com

http://dblab.duksung.ac.kr/ds/pdf/Chap03.pdf

https://velog.io/@hanif/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EB%B0%B0%EC%97%B4

 

[자료구조] 배열(Array)

배열

velog.io

 

'Python > 자료구조' 카테고리의 다른 글

[ 자료구조 ] 트리(Tree)란?  (0) 2022.03.05