주요용어
- 배열 : 인덱스와 원소값(〈index, value〉)의 쌍으로 구성된 집합이며, 정의된 각 인덱스는 그 인덱스와 관련된 값을 정의
- 2차원 배열 : 원소값을 특정하기 위해 필요한 인덱스가 두 개인 배열
- 행 우선 저장 방식 행렬: 하나의 행을 연속적으로 메모리에 할당하고, 그 다음 행을 메모리 영역에 할당하는 방법
- 열 우선 저장 방식 행렬 : 하나의 열을 연속적으로 메모리에 할당하고, 그 다음 열을 메모리 영역에 할당하는 방법
- 희소행렬(sparse matrix) : 원소값이 0인 원소가 그렇지 않은 원소보다 상대적으로 많은 행렬을 의미함
4. 1차원 배열 및 배열의 확장
1차원 배열의 정의
- 한 줄짜리 배열을 의미하며, 하나의 인덱스로 구분됨
- A[i]는 배열의 첫 번째 원소 A[0]이 저장된 주소인 α 로부터 시작하여, A[0]부터 A[i-1]개까지 i개의 배열 A[ ] 를 지나서 저장됨
- 따라서, A[ ]의 시작주소를 α 라고 가정하면, A[i] 저장 주소는 [α +i*k] 가 됨
행렬의 배열 표현
- 행렬을 컴퓨터에서 표현하기에는 2차원 배열이 적합함
- 1차원 배열을 여러 개 쌓아 놓은 것이 2차원 배열
행 우선 배열
- 1차원 배열을 여러 개 쌓아 놓은 것이 2차원 배열
열 우선 배열
- 1차원 배열을 여러 개 세워 놓은 것이 2차원 배열
행 우선 할당
- 가로의 1차원 배열 단위로 메모리 영역을 우선 할당함
열 우선 할당
- 세로의 1차원 배열 단위로 메모리 영역을 우선 할당함
C언어 에서의 2차원 배열(행 우선 순서 저장)
- C언어에서 A[5][3]을 선언하면 다음과 같은 배열이 생성됨
5. 희소 행렬의 개념
희소행렬
- 원소값이 0인 원소가 그렇지 않은 원소보다 상대적으로 많음
희소행렬의 일반적 배열표현
- 메모리 낭비를 막고 효율성을 높이기 위해서 0인 원소는 저장하지 않고 0이 아닌 값만을 따로 모아서 저장하는 방법이 필요함
정리하기
1. 가장 기본적인 배열은 1차원 배열이며, 한줄짜리 배열을 의미하므로 인덱스는 하나입니다. 한줄짜리 배열은 메모리 영역도 한줄로 할당받습니다.
2. 2차원 배열의 행우선 저장방식은 하나의 행이 모두 연속적으로 메모리 영역을 할당받고, 다음 행이 메모리 영역을 연속적으로 할당받는 방식이다.
3. 2차원 배열의 열우선 저장방식은 하나의 열이 모두 연속적으로 메모리 영역을 할당받고, 다음 열이 메모리 영역을 연속적으로 할당받는 방식이다.
4. 원소값이 0인 원소가 그렇지 않은 원소보다 상대적으로 많은 행렬을 희소행렬(sparse matrix)이라 합니다.