마이의 개발 블로그

[자료구조] 배열(array)과 리스트(list) 본문

개발지식/자료구조

[자료구조] 배열(array)과 리스트(list)

개발자마이 2022. 1. 26. 21:23
반응형

배열 (array)

- 다수의 데이터를 하나의 이름으로 묶어 관리하기 위한 자료구조로 인덱스와 값으로 구성됨

- 인덱스를 통해 데이터에 접근함 (random access 가능)

- 논리적 저장 순서와 물리적 저장 순서가 일치함 (연속적 메모리 공간 차지)

- 정적 할당으로 크기 변경이 불가능함 (삽입, 삭제시에도 빈 공간은 유지됨)

리스트 (list) 

- 메모리 공간 활용이 제한적인 배열의 단점을 극복하기 위해 만들어진 자료구조

- 포인터를 통해 데이터에 접근함 (포인터를 위한 추가 메모리 공간 필요)

- 논리적 저장 순서와 물리적 저장순서가 다름 (불연속적 메모리 공간 차지)

- 동적 할당으로 크기가 가변적임 (삽입, 삭제시 메모리 재할당)

배열과 리스트 비교 (속도 기준)

작업 탐색 삽입 및 삭제
속도 비교 배열 > 리스트 배열 < 리스트

요약

- 배열과 리스트는 둘 다 다수의 데이터를 하나의 이름으로 묶어 관리하기 위한 자료구조이다

- 데이터 크기의 변경 여부와 추가적인 작업(탐색, 삽입/삭제)의 비중을 고려하여 자료구조를 결정하자

- 배열은 탐색에 유리하고, 리스트는 삽입/삭제에 유리하다

반응형
Comments