Array
배열은 동일한 타입의 데이터를 메모리의 연속적인 위치에 저장하는 자료구조다. 배열의 각 요소는 인덱스를 통해 직접 접근할 수 있으며, 이러한 특성 때문에 인덱스를 알고 있다면 해당 요소에 접근하는 데 상수 시간(O(1))이 걸린다. 배열은 고정된 크기를 가지며, 초기에 크기를 지정해야 하고, 나중에 변경하기 어렵다는 단점이 있다.
장점:
- 인덱스를 통한 빠른 데이터 접근: 특정 위치의 데이터를 즉시 액세스할 수 있다.
- 메모리상의 연속성: 데이터가 연속적으로 저장되어 있어 캐시 효율성이 높다.
단점:
- 크기 변경이 어렵다: 배열의 크기를 늘리기 위해서는 새로운 배열을 만들고 기존의 데이터를 복사해야 한다.
- 삽입 및 삭제 연산 비효율: 배열의 중간에 요소를 삽입하거나 삭제할 때는 나머지 요소들을 이동시켜야 하므로, 시간 복잡도가 **
O(n)**이 된다.