📌 다차원 배열 (multi-dimensional array)
2차원 이상의 배열
ex) A[10][9][8] => 선언된 총 배열원소의 개수는 10 * 9 * 8 = 720
✔️ 행 우선 순서 row-major
✔️ 열 우선 순서 column-major
행 우선 | 열 우선 |
A[0][0] | A[0][0] |
A[0][1] | A[1][0] |
A[1][0] | A[2][0] |
A[1][1] | A[0][1] |
A[2][0] | A[1][1] |
A[2][1] | A[2][1] |
👉 int A[3][2] 일 경우
열 우선 순위는 가장 왼쪽 차원의 인덱스 값이 증가
행 우선 순위는 가장 오른쪽 차원의 인덱스 값이 증가
✔️ 배열의 표현 및 주소는
base address a, 각 원소의 s 바이트 할당,
👉 A[n][m]으로 선언된 2차원 배열에서 A[i][j]의 메모리 상 주소 표현
&A[i][j] = a + ( i * m + j ) * s
👉 A[n0][n1][n2]으로 선언된 3차원 배열에서 A[i][j][k]의 메모리 상 주소 표현
&A[i][j][k] = a + ( ( i * n1 * n2 ) +( j * n2 ) + k ) * s
...
👉 A[n0][n1][n2]...[nm-1] 배열에서
&(A[i0]i1][i2]...[im-1]) = a + { ( i0 * n1 * n2 * n3 ... * nm-1 ) + ( i1 * n2 * n3 * ... * nm-1 ) +...
( im-2 * nm-1) + ( im-1 ) } * sizeof (원소 자료형)
@여기서 n1, n2,... nm-1에서의 1,2,m-1은 '밑'을 의미
'자료구조' 카테고리의 다른 글
[자료구조] 15 수식의 평가 ( 중위, 후위, 전위 표기법 ) (1) | 2020.10.04 |
---|---|
[자료구조] 14 스택과 큐 (0) | 2020.10.04 |
[자료구조] 12 시간복잡도 (Time Complexity) (0) | 2020.09.21 |
[자료구조] 11 알고리즘의 성능 평가 : 공간 복잡도 (Space Complexity) (0) | 2020.09.21 |
[자료구조] 10 하노이타워 (0) | 2020.09.21 |