배열(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
Posted by 긍정왕오킹