
출처: https://www.geeksforgeeks.org/array-data-structure/
번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어, 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치가 된다.
인덱스
배열의 각 요소는 0부터 시작하는 인덱스를 가지며, 이를 사용하여 특정 요소에 접근할 수 있습니다.
크기 고정
배열은 생성할 때 크기가 고정되며, 이 크기는 변경할 수 없습니다. 만약 더 많은 요소를 저장해야 한다면 새로운 배열을 생성하고 데이터를 복사해야 합니다.
동일한 자료형 요소
배열은 동일한 자료형의 요소만을 저장합니다. 예를 들어, 정수형 배열은 정수만을 저장합니다.
연속된 메모리 공간
배열의 각 요소는 메모리에서 연속된 위치에 저장되므로 인덱스를 이용해 빠르게 요소에 접근할 수 있습니다.
정적 배열은 프로그래밍에서 사용되는 기본적인 데이터 구조 중 하나이다.
고정된 크기의 연속적인 메모리 블록을 사용하여 데이터를 저장하고 생성 후에는 크기를 변경할 수 없다.
정적 배열은 메모리 할당 및 해제에 대한 오버헤드가 없으며, 인덱스를 사용하여 빠르게 요소에 접근할 수 있는 장점이 있다.
그러나 크기가 고정되어 있기 때문에 배열이 선언될 때 크기를 알아야 하며, 실행 중에 크기를 동적으로 조정할 수 없는 단점도 있다.
동적 배열은 배열의 크기를 동적으로 조정할 수 있는 데이터 구조이다.
크기가 부족할 때 자동으로 조정되며, 메모리를 재할당하여 데이터를 저장한다. 유연성을 제공하지만 메모리 재할당과 데이터 복사에 따른 오버헤드가 있다.
('오버헤드(Overhead)' 추가적인 비용, 시간, 또는 자원 소비를 의미)
동적 배열의 장점은 크기를 동적으로 조절할 수 있어 유연하며, 필요한 메모리만 할당하여 메모리 효율성이 높다.
또한, 요소의 삽입 및 삭제가 용이하며 효율적으로 이루어진다.
하지만 단점으로는 크기를 조절할 때마다 메모리 재할당과 데이터 복사로 인한 오버헤드가 발생하며, 반복적인 크기 조절으로 메모리 조각화 문제가 발생할 수 있다.
또한, 정적 배열에 비해 인덱스 접근에 약간의 오버헤드가 있다.
둘 이상의 차원을 가지는 배열로, 2차원 배열부터 시작하여 3차원, 4차원 등으로 확장될 수 있습니다.
차원(Dimensionality)
인덱스(Indexing)
크기(Size)
프로그래밍에서 사용되는 기본적인 데이터 구조 중 하나입니다.
이는 일정한 크기의 연속된 메모리 블록을 사용하여 데이터를 저장하는 방식이다. 정적 배열은 한 번 생성되면 크기를 변경할 수 없다.
정적 배열은 선언 시에 크기를 명시하고, 컴파일 시에 메모리에 할당된다. 이러한 배열은 크기가 고정되어 있어 추가나 삭제가 어렵다.
또한, 정적 배열의 요소에 접근할 때 인덱스를 사용하여 접근한다.
메모리 할당 및 해제에 대한 오버헤드가 없으며, 빠른 속도로 요소에 접근할 수 있는 장점이 있다.
그러나 크기가 고정되어 있어 유연성이 부족하며, 크기를 동적으로 변경할 수 없는 단점도 있다.