Learning
토픽 3 / 66·선형 자료구조

배열 (Array)

배열 (Array)

동일한 타입의 데이터를 연속된 메모리 공간에 순차적으로 저장하는 선형 자료구조로, 인덱스를 통해 O(1) 시간에 임의 접근이 가능

목적: 임의 접근, 연속 메모리 활용, 캐시 효율, 고정 크기 데이터 저장

특징: 연속 메모리, 고정 크기, 인덱스 접근, 캐시 친화적

구성요소: 베이스 주소, 인덱스, 요소 크기, 길이

주소 계산: Address(A[i]) = Base + i × ElementSize

시간 복잡도

  • 접근(Access): O(1)
  • 검색(Search): O(n) - 순차, O(log n) - 정렬+이진탐색
  • 삽입(Insert): O(n) - 중간, O(1) - 끝
  • 삭제(Delete): O(n) - 중간, O(1) - 끝

공간 복잡도: O(n)

장점: 빠른 임의 접근(O(1)), 캐시 지역성, 메모리 효율, 간단한 구현

단점: 고정 크기, 삽입·삭제 비효율(O(n)), 메모리 낭비(미사용 공간)

적용사례: 정렬 알고리즘, 룩업 테이블, 행렬 연산, 버퍼

비교: 배열(연속/고정/O(1)접근) vs 연결 리스트(분산/동적/O(n)접근)

연관: 동적 배열, 다차원 배열, 인덱스, 메모리 레이아웃