따봉도치야 고마워

배열과 리스트의 차이 본문

프로그래밍/공부

배열과 리스트의 차이

따봉도치 2020. 2. 25. 15:41

배열과 리스트

: 동일한 특성의 데이터들의 집합을 가리키는 자료구조

 

둘의 가장 큰 차이는 구조적 차이라고 생각한다.

배열의 경우 연속된 메모리 공간에 할당되고, 리스트의 경우 메모리가 연속적인 공간에 있지 않고 다음 노드를 가리키는 주소값을 가지고 있다. 

이런 차이에서 오는 각각의 장단점을 알아보자.

 

*배열

(1)장점

- 구현이 쉬움

- 인덱스가 있어 조회에서 빠른 성능을 보여줌 

- 연속된 메모리 공간에 할당되어 순차 접근에도 빠름

- 참조를 위한 추가 메모리 할당이 필요 없음

 

(2)단점

- 삽입/삭제 시 뒤에 요소들을 이동해야 해서 비효율적

- 선언 시 지정한 크기 변경 불가

- 메모리 재사용 불가 (초기 사이즈만큼 할당이 되고, 데이터가 없더라도 메모리를 차지하고 있음)

 

*리스트

(1)장점

- 삽입/삭제 시 전후 노드의 참조 관계만 수정하면 되기 때문에 효율적

- 크기가 고정적이지 않음

- 메모리 재사용 가능 (삭제 시 해당 노드의 참조가 사라져 GC에 의해 가용 메모리로 전환)

 

(2)단점

- 구현이 상대적으로 복잡

- 검색이 비효율적 (처음부터 순차적으로 검색해야 함)

- 참조를 위한 메모리가 필요

 

*결론

- 저장할 데이터의 개수가 정해져 있고 / 삽입, 삭제 작업이 적고 / 특정 위치의 데이터를 조회하는 작업이 많다면 배열

- 저장할 데이터의 개수가 미정이고 / 삽입, 삭제 작업이 많고 / 특정 위치 데이터를 조회하는 경우가 별로 없다면 리스트

Comments