← 질문 목록
#174깊이 0
배열보다 연결 리스트를 사용하는 기준은 무엇인가?
데이터의 추가와 삭제가 빈번하게 일어날 때다. 인덱스로 접근하지 않고 순차적으로 탐색해도 무방한 환경에서 유리하다.
| 기준 | 배열 | 연결 리스트 |
|---|---|---|
| 요소 접근 | O(1). 인덱스로 즉시 찾음 | O(n). 처음부터 훑어야 함 |
| 중간 삽입/삭제 | O(n). 데이터를 밀고 당김 | 자리를 알면 O(1), 찾아가면 O(n) |
배열은 연속된 메모리 공간을 사용한다. 삽입이나 삭제 시 나머지 요소를 모두 이동시켜야 하므로 비용이 크다.
반면 연결 리스트는 노드가 흩어져 있다. 앞뒤 노드의 주소값만 바꿔주면 되므로 데이터 이동 없이 빠르게 처리한다.
최근 CPU 캐시 지역성 때문에 단순 탐색은 배열이 대개 빠르다. 무작정 리스트를 쓰기보다 데이터 변경 빈도를 먼저 따져야 한다.
추천 꼬리질문
관련 질문
- 연결 리스트가 배열보다 항상 삽입이 빠른가?자료구조 · 알고리즘배열과 연결 리스트의 성능 특성을 비교하여 상황에 맞는 선택 기준을 다루는 공통된 개념을 공유한다.
- 그래프를 인접 행렬과 인접 리스트 중 어떤 방식으로 구현해야 하는가?자료구조 · 알고리즘그래프 구현 시 인접 행렬(배열 기반)과 인접 리스트(연결 리스트 기반) 중 선택하는 기준을 다루므로 선택 기준이라는 개념을 공유한다.
- 그래프 구현 시 인접 행렬과 인접 리스트 중 무엇을 선택하는가?자료구조 · 알고리즘배열/연결 리스트의 트레이드오프를 알아야 인접 행렬/리스트 선택이 읽힌다
- 메모리 연속할당 방식 중 무엇을 선택하는가?운영체제
- 메모리 관점에서 값 타입과 참조 타입의 선택 기준은 무엇인가?언어 · 런타임