Array Memory

배열은 연속 메모리 덕분에 인덱스 접근이 빠르다

같은 크기의 원소가 이어져 있으면 시작 주소와 인덱스만으로 원하는 위치를 계산할 수 있다.

접근 비용 구조

O(1) access

연속 배치

원소가 메모리에 나란히 놓여 캐시 친화적인 순회가 가능하다.

주소 계산

base + index * size로 위치를 바로 계산한다.

삽입 비용

중간에 넣거나 지우면 뒤 원소를 이동해야 해서 비용이 커진다.

연속 메모리와 인덱스 접근

랜덤 접근과 순회가 많고 크기 변화가 적을 때 배열이 잘 맞는다.

baseindexoffsetvalue
배열 주소 해석

배열의 빠른 접근은 추상 기능이 아니라, 연속 메모리와 고정 원소 크기를 이용한 주소 계산의 결과다.