🚀 배열(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 |
댓글