「データ構造」アレイを表します.1 Dアレイ、2 Dアレイ、3 Dアレイ、多次元アレイ
宣言と定義
宣言定義概念はメモリ上のアドレスを確定せず、名前のターゲット名に対応するメモリ上のアドレス例aのみを教える.int x( );int a = 1; int x( ) { return 0; }
イニシャルセグメント
int a[100]
for (int i=0; i<100; i++){
a[i];
}
シンボル定数の利用
#define N 100
int a[N]
for(int i=0; i<N; i++){
a[i] = 0;
}
1 Dアレイ
アレイに
2 Dアレイ
int a[2][3] = {1,2,3,4,5,6};
int a[2][3] = {{1,2,3},{4,5,6}};
int a[ ][ ] = {{1,2,3},{4,5,6}};
3 D配列複写
int a[3][2][2] = { {{1,2}, {3,4}}, {{5,6}, {7,8}}, {{9,10}, {11,12}} };
variablemememmoryaddressa[4][2][3]例示計算リスト[0][0][0][0]α (base address)0list [1][1][2]α +(1 n2 n3) + 1 *n3 + 20 + 1(23) + 1*(3) + 2= 11list [a][b][c]α + (a n2 n3) + b *n3 + c0 + a23 + b*3 + c = 6a + 3b +c
たじゅうはいれつ
Array A[upper 0][upper 1] ... [upper n-1] 에 대해, α가 A[0][0]...[0]의 주소이면,
A[i0][i1]...[in-1] = α + i0 • ( upper1 • upper2 ... • upper n-1 )
+ i1 • ( upper2 • upper3 ... • upper n-1 )
+ i2 • ( upper3 • upper4 ... • upper n-1 )
...
+ i n-2 • ( upper n-1 )
+ i n-1
- 그러므로,모든aj (0≤j<n-1)를미리구해놓은다음(어떻게?...n-2번의곱셈으로), a[i0][i1]...[in-1] 의 주소를 구해야 할 때, n-1번의 곱셈 (O(n))을 하고, n번의 덧셈으로 a[i0][i1]...[in-1] 의 주소를 구할 수 있다.
- 최종적인 time complexity: **O(n)**
ジルコニウム構造との比較
Reference
この問題について(「データ構造」アレイを表します.1 Dアレイ、2 Dアレイ、3 Dアレイ、多次元アレイ), 我々は、より多くの情報をここで見つけました https://velog.io/@beneficial/자료구조-배열의-표현-1차원배열-2차원배열-3차원배열-다차원배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol