Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Data Structure
- Java
- solid
- CS
- 실행 엔진
- 스택메모리
- 객체지향 설계 5원칙
- stack메모리
- 자료구조
- pc register
- Spring SOLID
- 자바 heap
- 스택
- Runtime data Area
- 개방-폐쇄 원칙
- 단일책임원칙
- Stack
- 단일 책임 원칙
- Native Method Stack
- Execution Engine
- 자바
- 개방폐쇄원칙
- Spring
- Heap
- Single Responsibillity Principle
- Class Loader
- 의존성 역전 원칙
- JVM
- Open Closed Principle
- 객체지향
Archives
- Today
- Total
Juuunew 살아남기
[CS] 자료구조 - 배열 (Array) 본문
배열 (Array)
배열(Array)은 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조이다. 같은 종류의 데이터를 순차적으로 저장하며 데이터를 효율적으로 관리하기 위해 사용한다.
배열은 참조 객체이므로 배열을 가리키는 참조 변수는 스택 영역에 할당되며, 주소값(인덱스)은 힙 영역에 생성되는 배열의 주소값이다.
- 장점
- 빠른 접근이 가능함. (인덱스를 이용해 접근하기 때문)
- 데이터의 크기가 확정적일 때 메모리나 처리속도 면에서 좋다.
- 단점
- 선언할 때 크기가 고정되기때문에 데이터 추가/삭제의 어려움이 있다. (사이즈를 넘어가면 배열을 새로 만들어야 함)
- 중간에 요소를 삽입하거나 삭제할 경우에는 해당 요소 뒤에 있는 요소들의 위치를 이동시켜야 한다.
🌟 element : 배열을 구성하는 각각의 값. 요소 혹은 원소라고 부른다.
🌟 index : 배열에서의 주소를 가리키는 숫자값 (배열의 index는 0부터 시작)
// 배열의 선언 방법
public class Array {
// 배열을 선언하면서 동시에 크기 할당
int[] arrA = new int[10];
// 배열을 선언하면서 동시에 값을 할당
int[] arrB = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
}
int 자료형 뿐만 아니라 String, char, boolean 등 다른 자료형의 배열도 선언할 수 있다.
배열의 길이는 중괄호 { } 사이에 제공되고 쉼표 , 로 구분된 값의 수에 따라 결정된다.
배열의 시간복잡도
접근
배열 내에서 n번째 인덱스에 해당하는 값을 찾는 접근 연산은 O(1)의 시간복잡도를 갖는다.
검색
배열의 검색은 순차검색으로 인덱스를 알지 못할 때 원하는 값을 찾기 위해서는 배열을 하나하나 확인해봐야 하기 때문에 O(n)의 시간복잡도를 갖는다.
추가, 삭제
추가하거나 빼려는 인덱스를 정확하게 알고 있다면 O(1), 그게 아니라면 O(n)
'Computer Science > Data Structure' 카테고리의 다른 글
[CS] 자료구조 - 트리 (Tree) (0) | 2023.03.16 |
---|---|
[CS] 자료구조 - 스택 Stack (0) | 2023.02.19 |
[CS] 자료구조 - 큐 Queue (0) | 2023.02.15 |
[CS] 자료구조 - List (0) | 2023.02.09 |
[CS] 자료구조 (Data Structure) (0) | 2023.02.05 |