배열이란?
배열(Array): 동일한 데이터 유형의 요소들을 순서대로 저장하는데 사용되는 선형 자료구조. 각 요소는 배열내에서 고유한 인덱스를 가지며, 이 인덱스를 사용하여 해당 요소에 접근할 수 있다.
배열에 대한 특징은 다음과 같다.
- 인덱스
- 배열의 각 요소는 고유한 인덱스를 가진다. 인덱스는 0부터 시작하여 배열의 크기보다 1 작은 값까지의 정수이다. 인덱스를 통해 특정 요소에 빠르게 접근할 수 있다.
- 고정된 크기
- 배열은 일반적으로 고정된 크기를 가지며, 한 번 생성된 배열은 크기를 변경할 수 없다. 배열의 크기는 초기에 정의되며, 이 크기에 맞게 메모리가 할당된다.
- 연속적인 메모리 할당
- 배열은 연속적인 메모리 공간에 요소를 저장한다. 이는 각 요소의 크기가 동일하다는 가정 하에 가능하며, 이는 빠른 인덱스 기반 접근을 허용한다.
- 다차원 배열
- 배열은 단일 차원뿐만 아니라 다차원 배열로도 확장될 수 있다. 2차원 배열은 행과 열로 구성되며, 다차원 배열은 이러한 개념을 확장하여 표현한다.
- 시간 복잡도
- 인덱스를 알고있는 경우, O(1)의 시간복잡도를 갖는다. (조회, 삭제, 추가)
- 순차적으로 요소를 조회해야 하는 경우, O(n)의 시간복잡도를 갖는다. (조회, 삭제, 추가)
- 삭제와 추가의 경우, 해당 위치 이후의 요소를 이동시켜야 하므로 shift(이동) 작업이 필요하다. 이때 최악의 경우 시간 복잡도는 O(n)이 될 수 있다.
배열은 데이터의 개수가 정해져 있거나, 삽입,삭제가 적은 경우, 데이터의 검색이 빈번한 경우에 사용된다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일",};
for (Stirng week : weeks) {
System.out.println(week);
}
String[] animals = new String[2];
animals[0] = "토끼";
animals[1] = "코끼리";
'Algorithm > 자료구조 개념' 카테고리의 다른 글
[자료구조] 자바의 자료구조 개념 정리 - 2 (1) | 2024.01.10 |
---|---|
[자료구조] 자바의 자료구조(Collection) - 1 (2) | 2024.01.04 |
[자료구조] 03. 해시 테이블 (0) | 2023.04.05 |
[자료구조] 02. Tree (0) | 2023.03.27 |
[자료구조] 01. 그래프 (0) | 2023.03.27 |