數(shù)組元素存儲(chǔ)地址的計(jì)算_第1頁(yè)
數(shù)組元素存儲(chǔ)地址的計(jì)算_第2頁(yè)
數(shù)組元素存儲(chǔ)地址的計(jì)算_第3頁(yè)
數(shù)組元素存儲(chǔ)地址的計(jì)算_第4頁(yè)
數(shù)組元素存儲(chǔ)地址的計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)組元素存儲(chǔ)地址的計(jì)算一維數(shù)組設(shè)一維數(shù)組An存放在n個(gè)連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)組元素占 一個(gè)存儲(chǔ)單元(不妨設(shè)為 C個(gè)連續(xù)字節(jié)).如果數(shù)組元素A0的首地址是L,則A1的首地址是L+C , A2的首地址是L+2C,依次類(lèi)推,對(duì)于0 i n 1有:Loc(Ai) Loc(A0) i*C二維數(shù)組二維數(shù)組的每個(gè)元素含兩個(gè)下標(biāo),如果將二維數(shù)組的第一個(gè)下標(biāo)號(hào),理解為行號(hào),第二個(gè)下標(biāo)理解為列號(hào),然后按行列次序排列個(gè)元素, 則二維數(shù)組呈陣列形狀。例如a11 a12a1nAa21 a22a2nam1am2amn它是個(gè)行號(hào)為1m ,列號(hào)為1n的二維數(shù)組元素陣列如何保存二維數(shù)組?首先要確定個(gè)順序Oa00 a01&am

2、p;02B 0a11盹a20a21a22a00 a01 a02a10 a11 a12a20 a21 a22a00a01a020a11a12a20a21a22Ba00a01a02ai0ai1ai2a20<Ja21a22a00a0ia02a00a01a02a00a01302Bai0aii3,2Ba10311a12Ba10311312a20a21a22a20a21a22a20a21322a00ai0 a20a01a11a21a02ai2a22300301302300h-30130200S01302a10311312BO&s£1312B310S12321322320沐32232

3、0321300301302300301 302a10311 312B310311312320321322320321322320 310321300311322 301312 302設(shè)count為數(shù)組B中元素的個(gè)數(shù),則 count=9按行優(yōu)先存儲(chǔ)123456789a000)1a02a10011a12a20a21a227,按列優(yōu)先存儲(chǔ)123456789a00a10a20a01311a21a02a12a22VVY地址如何計(jì)算?所謂按行優(yōu)先順序,就是將數(shù)組元素按行向量的順序存儲(chǔ), 第i 1個(gè)行向量存儲(chǔ)在第i個(gè)行向量之后。F面我們計(jì)算二維數(shù)組Am n中任一元素Aij的存儲(chǔ)地址,設(shè)每個(gè)數(shù)組元素所占空間為

4、C個(gè)連續(xù)字節(jié)。顯然,Aij是第i個(gè)行向量Bi中的第j個(gè)元素。123456789aooao1ao2310311a12920a21a22'V"八y'第0行第1行第2行在Aij之前的元素個(gè)數(shù)為u,分別是AOO , AO1,AO2,AOn,A10 ,A11 ,A12,A1n,Ai-10, Ai-11,Ai-12,Ai-1n, Ai0 , Ai1,Ai2,Aij-1設(shè)每個(gè)數(shù)組元素所占空間為C個(gè)連續(xù)字節(jié)。Loc (Aij)二Loc (AOO ) +u*Cu二?前i行(第0行到第i-1行)(每行n個(gè)元素)的元素個(gè)數(shù)+第i行的元素個(gè)數(shù)(Ai0到Aij-1因此,u=i*n+j)+u*C

5、Loc (Aij ) =Loc (AOO=Loc ( AOO)+ (i*n+j ) *C按列優(yōu)先存儲(chǔ)123456789a00a10a20a01311a21a02a12a22地址如何計(jì)算?在Aij之前的元素個(gè)數(shù)為V,分別是A00, A10,A20,Am0,A01,A11 ,A21,Am1,A0j-1,A1j-1,A2j-1,Amj-1,A0j,A1j,A2j,Ai-1j設(shè)每個(gè)數(shù)組元素所占空間為C個(gè)連續(xù)字節(jié)。Loc( Aij)二Loc (A00 )+v*Cv=?前j列(第0列到第j-1列)(每列m個(gè)元素)的元素個(gè)數(shù)+第j列的元素個(gè)數(shù)(A0j到 Ai-1j)因此,V二j*m+iLoc( Aij )=

6、Loc(A00 )+v*C=Loc(A00 ) + (j*m+i ) *C高維數(shù)組按行優(yōu)先:“左”下標(biāo)優(yōu)先,即第一(最左)下標(biāo)的下標(biāo)值較小的元素較先存儲(chǔ),第一個(gè)下標(biāo)值相同者,按第二下標(biāo)優(yōu)先存儲(chǔ),對(duì)任意的k>1,對(duì)第1( k-1 )維相同者,先存儲(chǔ)第k維中下標(biāo)值較小者。按列優(yōu)先:“右”下標(biāo)優(yōu)先(最后一維下標(biāo)為最右)先存儲(chǔ)第n維下標(biāo)值較小者,第n維下標(biāo)值相同者,先存儲(chǔ)第n-1維下標(biāo)值較小者。三維數(shù)組D334的順序存儲(chǔ)次序是元素表示為Dijk其中,0 <i <2 , 0 <j <2 ,0 <k <3,可以把它看作一維數(shù)組D034i=0B13 = D034,

7、D134, D234 000, D001, D 002, D 003010, D011, D012, D013020, D021, D 022, D 023D134i=11 00, D101, D 1 02, D 1 03:D 1 10, D111, D112, D 1 13D 1 20, D121, D 1 22, D 1 23D 2 00,D201,D 202,D 2 03D234i=2D210,D211,D212,D213D220,D221,D 222,D223For x=0to 2doFor y=0 todoFor z=0to3 doDijk的地址:Loc (Dijk)=Loc(D00

8、0)+w*C第一個(gè)下標(biāo)的變化:0 到 i-1,共 i*3*4個(gè)元素第一個(gè)下標(biāo)為i時(shí),第二個(gè)下標(biāo)的變化:0到j(luò)-1,共j*4個(gè)元素第一個(gè)下標(biāo)為i,第二個(gè)下標(biāo)為j時(shí),第三個(gè)下標(biāo)的變化:0到k-1 ,共k個(gè)元素w= i*3*4+j*4+kLoc( Dijk)=Loc ( D000)+w*C=Loc(D000)+( i*3*4+j*4+k)*CFor z=0 to 3doFor y=0 to2 doFor x=0 to 2 doop £00=z JojG庇庇a,£乙山'£遼HoldG "庇a4gl山Hold2=G Ko庇a4go山4g0HoldL=0=k

9、 乙庇a'乙乙山'乙乙Holdk "庇a七U山'遼MHold2=L=k Ko庇a七0山'遼0Hold0=門(mén)乙庇a'門(mén)乙山'門(mén)遼Hold庇a U山4 d 1Hold2=門(mén)0庇a'門(mén)0山'門(mén)0HoldO=£££血©G2=1=0=0乙庇G '0乙山'0遼HoldoKi Ma 'oU 山 4olHold0胡0Ko 庇G 4oo 山 4ooHoldoGGa乙乙E乙Lg30g 比g k kg%03g Okg OOgFor y=0 to 2doFor x=0 to2 do

10、Loc (Dijk)二Loc(D000)+w*C第三個(gè)下標(biāo)的變化:0到k-1,共k*3*3個(gè)元素第三個(gè)下標(biāo)為k時(shí),第二個(gè)下標(biāo)的變化:0到j(luò)-1,共j*3個(gè)元素第三個(gè)下標(biāo)為k,第二個(gè)下標(biāo)為j時(shí),第一個(gè)下標(biāo)的變化:0到i-1 ,共i個(gè)元素w= k*3*3+j*3+iLoc( Dijk)=Loc ( D000)+w*C=Loc (D000) + (k*3*3+j*3+i) *Cn 維數(shù)組 amim2 mnFor l1=0 tom1 1doFor I2 =0 tom21 doFor ln=0 tomn 1 doLoc(ii,i2, ,in)Loc(0,0,0) s*CnI1 的變化:0 i1-1,共 i1*m2*m3*mn 二 i1* mp 個(gè)元素p 2m4 *in -1 ,nl1等于h時(shí),2的變化:0 i2-1,共i2* m3*mn二i2* mp個(gè)元素p 3ll等于il時(shí),I2等于i2時(shí),l3的變化:0i3-1 ,共i3*n*mn= i3*mp個(gè)元素P 4ll等于ii時(shí),I2等于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論