「データ構造」アレイを表します.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アレイ

  • シナリオ宣言
  • a[n]
  • a:配列名/n:最大要素数
  • メモリ表示
    アレイに
  • 連続メモリアドレス
  • を割り当てる.
  • 要素は、割り当てられたメモリにインデックス順に
  • を格納する.
  • 順序思想:
  • アレイの論理順序がメモリの物理順序と同じであることを示す
  • 順序表示:使用順序思想表示データ
  • 2 Dアレイ

  • シナリオ宣言
  • a[n1, n2]
  • n 1:行数
  • n 2:列数
  • 要素数:n 1*n
  • メモリ表示
  • 行優先順位(行major order):従来の方法
  • 列優先順位(列主順)
  • Cの発現
    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配列複写


  • シナリオ宣言
  • a [n1, n2, n3]
  • n 1:平面数
  • n 2:行数
  • n 3:列数
  • 元素数:n 1 n 2 n 3
  • メモリ表示
  • n 1個の2次元アレイ(n 2*n 3)を1次元メモリに順次マッピングする方法
  • C表示
  • 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
  • a[0,0,0]のアドレスはαa[i 1,i 2,i 3]アドレスはα + i1 n2 n3 + i2 *n3 + i3
  • たじゅうはいれつ

  • 多次元配列アドレッシング方法
    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)**
  • a[x][i][j][k][w] = α + (x u1 u2 u3 u4) + (i u2 u3 u4) + (j u3 u4) + (k u4) + w
  • ジルコニウム構造との比較

  • アレイ:同じタイプのデータセット
  • アレイ:異なるタイプのデータのセット