배열(Array)의 개념
배열은 여러개의 동일한 데이터 타입의 데이터를 한번에 만들 때 사용됩니다.
만일, 6개의 정수를 저장할 공간이 필요한 경우, 배열이 없다면
int a1, a2, a3, a4, a5, a6;
으로 선언해야하지만, 배열이 지원된다면 간단하게
int a[6];
으로 선언될 수 있습니다.
배열은 인덱스 번호를 기준으로 작업을 할 수 있기 때문에 효율적으로 루프를 설정하여 여러 상황에서 간단한 코드를 이용하여 결과를 나타낼 수 있습니다.
- C언어에서는 배열의 인덱스는 0부터 시작
- a[6] = a[0] ~ a[5] 까지 6개
2차원 배열
2차원 배열은 1차원 배열이 여러개 모여서 이루어집니다.
2차원 배열에서 가로줄은 행, 세로줄을 열이라고 합니다.
int a[3][4];
a[0][0] |
a[0][1] |
a[0][2] |
a[0][3] |
a[1][0] |
a[1][1] |
a[1][2] |
a[1][3] |
a[2][0] |
a[2][1] |
a[2][2] |
a[2][3] |
이러한 형태라고 생각하시면 됩니다.
하지만, 실제 메모리 안에서는 그냥 선형으로 저장됩니다.
배열의 장점
- 구조가 단순하고 구현 방법이 쉽다.
- 인덱스 번호를 기준으로 접근하기 때문에 원소 접근 시간이 빠르다.
배열의 단점
- 맨 뒷자리가 아닌 중간에 요소를 삽입, 삭제하려 할 경우 인덱스의 변경이 필요하다.
- 메모리 공간을 동적으로 설정할 수 없다. (동적배열, 벡터 등으로 선언 할 경우 동적 설정 가능)
- 크기의 제한이 있다. (역시 동적배열, 벡터로 선언할 경우 크기의 제한은 없어짐)
'Basics > Data Structure' 카테고리의 다른 글
배열과 연결리스트 (0) | 2014.11.11 |
---|---|
연결 리스트 (Linked List) (0) | 2014.11.11 |
정렬 알고리즘의 비교 (0) | 2014.11.01 |
정렬 - 기수정렬 (0) | 2014.11.01 |
정렬 - 힙 정렬 (0) | 2014.11.01 |