본문 바로가기
CS 공부/자료구조

배열(Array)이란?

by 꼬질꼬질두부 2023. 10. 11.

🚀 배열(Array)이란?

동일한 데이터 타입의 변수들이 메모리 상에서 연속적으로 할당된 구조.

간단히 말해서, 동일한 타입의 여러 데이터를 하나의 이름으로 그룹핑해서 관리하는 도구입니다.

 

//java에서의 배열 선언
int[] myArray = new int[5]; // 크기가 5인 정수형 배열 선언


🎯 배열의 장단점

👍 장점
- 인덱스를 통한 빠른 접근

: 배열은 인덱스를 통해 데이터에 접근하기 때문에 빠른 데이터 조회가 가능합니다.

- 메모리 사용이 효율적

: 데이터가 연속적으로 저장되어 있어, 메모리 관리가 효율적입니다.

👎 단점
- 크기가 고정적

: 배열은 선언 시 지정한 크기만큼만 메모리를 사용할 수 있습니다. 이후에는 크기를 변경할 수 없습니다.

- 데이터 삽입/삭제의 어려움

: 중간에 있는 데이터를 삽입하거나 삭제할 경우, 데이터를 이동시켜야 하므로 비효율적입니다.

🕐 배열의 시간 복잡도

접근: O(1) - 인덱스를 사용해 한 번에 접근할 수 있습니다.

검색: O(n) - 최악의 경우, 배열 내 모든 요소를 확인해야 하므로 n에 비례합니다.

삽입: O(n) - 삽입 위치 이후의 모든 요소를 이동시켜야 합니다.

삭제: O(n) - 삭제 위치 이후의 모든 요소를 이동시켜야 합니다.

💡 배열은 언제 사용하면 좋나요?

- 데이터의 크기가 고정적일 때
: 배열은 크기가 고정되어 있으므로, 데이터의 크기가 변하지 않고 알려진 경우에 유용합니다.

- 데이터 접근이 빈번할 때
: 배열은 인덱스를 통해 O(1)의 시간 복잡도로 데이터에 접근할 수 있으므로, 데이터 조회가 빈번하게 일어나는 경우 유리합니다.

- 간단한 구조를 원할 때
: 배열은 사용법이 간단하고 직관적입니다. 복잡한 자료구조가 불필요한 경우 배열을 사용하는 것이 좋습니다.

'CS 공부 > 자료구조' 카테고리의 다른 글

큐(Queue)란?  (0) 2023.10.11
스택(Stack)이란?  (0) 2023.10.11
연결 리스트(Linked List)란?  (0) 2023.10.11

댓글