版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第五章數(shù)組和廣義表5.1數(shù)組
數(shù)組是最常用的一種數(shù)據(jù)結(jié)構(gòu),幾乎所有的程序設(shè)計(jì)語言都把數(shù)組設(shè)為固有的數(shù)據(jù)類型。
5.1數(shù)組JAVA語言支持多維數(shù)組int[]array1=newint[N];聲明了一個(gè)一維數(shù)組,有多少個(gè)元素?答:有N個(gè)數(shù)據(jù)元素5.1數(shù)組JAVA語言支持多維數(shù)組int[][]array2=newint[M][N];聲明了一個(gè)二維數(shù)組,有多少個(gè)元素?答:有M*N個(gè)數(shù)據(jù)元素5.1數(shù)組JAVA語言支持多維數(shù)組int[][]array3=newint[X][Y][Z];聲明了一個(gè)三維數(shù)組,有多少個(gè)元素?答:有X*Y*Z個(gè)數(shù)據(jù)元素。
JAVA語言對數(shù)組的維數(shù)沒有嚴(yán)格的界限。但是三維以上的數(shù)組基本不大使用,用得最多的是一、二維數(shù)組。還可以支持更復(fù)雜的數(shù)組一維數(shù)組5.2數(shù)組的存儲(chǔ)a0a1a2…an
內(nèi)存a0a1…an5.2數(shù)組的存儲(chǔ)
a00
a01……a0n-1
a10
a11……a1n-1
………….
am-10
am-11……
am-1n-1
內(nèi)存a00…a0n-1a10…a1n-1…am-10am-1n-1二維數(shù)組行序?yàn)橹餍?.2數(shù)組的存儲(chǔ)
a00
a01……a0n-1
a10
a11……a1n-1
………….
am-10
am-11……
am-1n-1
二維數(shù)組內(nèi)存a00…a0n-1…am-10a01…am-11…am-1n-1列序?yàn)橹餍?/p>
二維數(shù)組a[m,n]每個(gè)元素只占L個(gè)存儲(chǔ)單元,”按行優(yōu)先”存放數(shù)組,首元素a00的地址為
Loc(0,0),求元素aij的地址.
最基本的原理:aij的地址=第一個(gè)元素的起始地址該元素前面的元素個(gè)數(shù)╳單位長度+a00a01a02…a0j…a0n-1
a10a11a12…a1j…a1n-1
::::::::::Amxn=ai0ai1ai2…aij
…ain-1
::::::::::
am-10am-11am-12…am-1j…am-1n-1i行,每行n個(gè)元素j個(gè)元素Loc(i,j)=Loc(0,0)+(n×i+j)L2006-1程序員考試試題對于二維數(shù)組a[0…4,1…5],設(shè)每個(gè)元素占1個(gè)存儲(chǔ)單元,且以行為主序存儲(chǔ),則元素a[2,1]相對于數(shù)組空間起始地址的偏移量是___。
(也就是a[21]前面的元素個(gè)數(shù)*單位長度)
A.5
B.10
C.15
D.25本題二維數(shù)組a[0…4,1…5]行下標(biāo)從0開始,列下標(biāo)從1開始。數(shù)組第一個(gè)元素是a[01]。a[01]a[02]a[03]a[04]a[05]a[11]a[12]a[13]a[14]a[15]a[21]a[22]a[23]a[24]a[25]a[31]a[32]a[33]a[34]a[35]a[41]a[42]a[43]a[44]a[45]以行為主序存儲(chǔ),a[21]前面的元素個(gè)數(shù)一共有10個(gè),
每個(gè)元素的單位長度是1,10*1=10,
所以元素a[2,1]相對于數(shù)組空間起始地址的偏移量是10。
矩陣(Matrix)是數(shù)值程序設(shè)計(jì)中經(jīng)常用到的數(shù)學(xué)模型
B3x4=5-27586-1308475.3矩陣的壓縮存儲(chǔ)A3x4=5-28494-190721
求A+B。在編程時(shí),簡單而又自然的方法,是將矩陣元素存儲(chǔ)到一個(gè)二維數(shù)組中。
但是在一些特殊矩陣中,元素呈某種規(guī)律分布或者矩陣中有大量的零元素,如果仍用二維數(shù)組存,會(huì)造成極大的浪費(fèi),尤其是處理高階矩陣的時(shí)候。
為了節(jié)省存儲(chǔ)空間,我們可以對這類矩陣進(jìn)行壓縮存儲(chǔ)。5.3.1特殊矩陣的壓縮存儲(chǔ)對稱矩陣:若n階方陣A中的元滿足特性
aij=aji
1≤i,j≤n
則稱A為n階對稱矩陣
1513750800A=189263025170613存儲(chǔ)下三角:a11a21a22a31a32a33a41a42a43a44a51a52a53a54a55a11a21a22a31。。。a51。。。a55
壓縮存儲(chǔ):將矩陣下三角中的元素按行優(yōu)先的順序存儲(chǔ)到一維數(shù)組。1)n階對稱矩陣A的壓縮存儲(chǔ)需要一個(gè)多大的一維數(shù)組?a11
a21a22
::::::::
ai-11ai-12……ai-1i-1ai1ai2ai3…aij
…aii
::::::::::
an1an2an3…anj…ani
…ann1+2+。。。+n=n(n+1)/22)假設(shè)n階對稱矩陣A中的元素定義為float型,壓縮存儲(chǔ)可以節(jié)省多少存儲(chǔ)空間?非壓縮存儲(chǔ)所用存儲(chǔ)空間為4n*n個(gè)字節(jié)(即用二維數(shù)組存儲(chǔ));壓縮存儲(chǔ)所用存儲(chǔ)空間為2n(n+1)個(gè)字節(jié);可節(jié)省存儲(chǔ)空間為2n(n-1)個(gè)字節(jié);3)下三角中的元素aij在一維數(shù)組中的下標(biāo)?a11a21a22a31…aij…an1…anna11
a21a22
::::::::
ai-11ai-12……ai-1i-1ai1ai2ai3…aij
…aii
::::::::::
an1an2an3…anj…ani
…anni-1行共:1+2+
…
+i-1j-1個(gè)元素三角矩陣:若n階方陣中下(上)三角(不包括對角線)中的元均為常量c或0,則稱為上(下)三角矩陣.數(shù)組下標(biāo)k=0123n(n-1)/2n(n+1)/2a11a21a22a31…an1…annca11
a21a22
::::::::
ai-11ai-12……ai-1i-1ai1ai2ai3…aij
…aii
::::::::::
an1an2an3…anj…ani
…ann
壓縮存儲(chǔ):將矩陣下三角中的元素按行優(yōu)先的順序存儲(chǔ)到一維數(shù)組中。常量c或0存儲(chǔ)到數(shù)組的最后一個(gè)位置。1)n階三角矩陣A的壓縮存儲(chǔ)需要一個(gè)多大的一維數(shù)組?a11
a21a22
::::::::
ai-11ai-12……ai-1i-1ai1ai2ai3…aij
…aii
::::::::::
an1an2an3…anj…ani
…ann1+2+。。。+n+1=n(n+1)/2+12)假設(shè)n階三角矩陣A中的元素定義為float型,壓縮存儲(chǔ)可以節(jié)省多少存儲(chǔ)空間?非壓縮存儲(chǔ)所用存儲(chǔ)空間為4n*n個(gè)字節(jié)(即用二維數(shù)組存儲(chǔ));壓縮存儲(chǔ)所用存儲(chǔ)空間為2n(n+1)+4個(gè)字節(jié);可節(jié)省存儲(chǔ)空間為2n(n-1)-4個(gè)字節(jié);3)下三角中的元素aij在一維數(shù)組中的下標(biāo)?常數(shù)c的下標(biāo)?a11a21a22a31…aij…an1…anna11
a21a22
::::::::
ai-11ai-12……ai-1i-1ai1ai2ai3…aij
…aii
::::::::::
an1an2an3…anj…ani
…anni-1行共:1+2+
…
+i-1j-1個(gè)元素c程序員試題
對矩陣壓縮存儲(chǔ)的主要目的是____。
A.方便運(yùn)算B.節(jié)省存儲(chǔ)空間
C.降低計(jì)算復(fù)雜度D.提高運(yùn)算速度12472358A=45697891023583469B=56710891011對稱矩陣壓縮存儲(chǔ)應(yīng)用舉例求A+B因?yàn)槎仃嚩际菍ΨQ矩陣,可以采用壓縮存儲(chǔ),將矩陣存儲(chǔ)到一維數(shù)組中,所需一維數(shù)組的長度是4*(4+1)/2=103.
稀疏矩陣
如果矩陣中只有少量的非零值元,并且這些非零值元在矩陣中的分布沒有一定規(guī)律,則稱為隨機(jī)稀疏矩陣,簡稱為稀疏矩陣。假設(shè)在mxn
的矩陣中有t個(gè)非零值元,令δ=t/m*n,稱δ為矩陣的稀疏因子。A的稀疏因子是多少?7/30=0.23=23%。A5x6=30050000-200010406000000000-1000A并不屬于嚴(yán)格意義上的稀疏矩陣,只有稀疏因子小于5%的矩陣才能稱之為稀疏矩陣。A5x6=30050000-200010406000000000-1000
稀疏矩陣的壓縮存儲(chǔ):只存儲(chǔ)非0元素。描述非0元素的信息有:
123456A5x6=1300500
200-2000
3104060
4000000
500-1000整個(gè)矩陣的存儲(chǔ):每個(gè)非零元素由(row,col,value)唯一確定,整個(gè)矩陣可表示成一個(gè)三元組表。rowcolvalue
113
145
23-2
311
334
356
53-1
三元組表
如何表示三元組表的一行?三元組表的每一行都是由三個(gè)數(shù)據(jù)項(xiàng)組成的,考慮用類表示。
classTriple{
introw,col;floatvalue;};
如何表示整個(gè)三元組表?用類數(shù)組Triple[]data=newTriple[7];//數(shù)組data中有7個(gè)數(shù)據(jù)元素,每個(gè)元素類型都是Triple型
//java語言中認(rèn)為三元組表的順序存儲(chǔ)就是把三元組表存放到類數(shù)組中。1)三元組表的順序存儲(chǔ)假設(shè)稀疏矩陣A的數(shù)據(jù)元素是浮點(diǎn)型,row
col是整型short,value是浮點(diǎn)型float,稀疏矩陣A采用三元順序表存儲(chǔ)節(jié)省了多少存儲(chǔ)空間?答:稀疏矩陣A采用二維數(shù)組存儲(chǔ)所用的存儲(chǔ)空間=5*6*4=120字節(jié)。稀疏矩陣A采用三元順序表存儲(chǔ)所用的存儲(chǔ)空間=7*8=56字節(jié)。節(jié)省的存儲(chǔ)空間=120-56=64字節(jié)。三元組表的順序存儲(chǔ)下如何實(shí)現(xiàn)稀疏矩陣的相加,相乘,轉(zhuǎn)置?
2)三元組表的鏈?zhǔn)酱鎯?chǔ)列指針down指示同一列中的下一個(gè)非0元素行指針right指示同一行中的下一個(gè)非0元素
結(jié)點(diǎn)結(jié)構(gòu):rowcolValue列指針down行指針rightA3x4=30050-1003000
矩陣A的十字鏈表稀疏矩陣的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下(十字鏈表)如何實(shí)現(xiàn)稀疏矩陣的相加,相乘,轉(zhuǎn)置等?作業(yè):請畫出稀疏矩陣M和N的十字鏈表結(jié)構(gòu)。
5.4廣義表的定義線性表的定義:線性表(LinearList)是由n(n≥0)個(gè)類型相同的數(shù)據(jù)元素組成的有限序列。
L=(a1,a2,...,ai-1,ai,ai+1,...,an)廣義表的定義:廣義表(GeneralizedList)是n(n>=0)個(gè)數(shù)據(jù)元素組成的有限序列。
LS=(α1,α2,α3,…,αn)
幾點(diǎn)說明:1、αi與αj類型可以不同。αi可以是原子元素,也可以是子表。
C=(a,(b,c,d))
C是一個(gè)廣義表,第一個(gè)數(shù)據(jù)元素是一個(gè)原子元素a,第二個(gè)數(shù)據(jù)元素是子表(b,c,d)。LS=(α1,α2,α3,…,αn)幾點(diǎn)說明:2、廣義表的長度:廣義表中的數(shù)據(jù)元素個(gè)數(shù)。
C=(a,(b,c,d))
廣義表C的長度是2。
廣義表A=()的長度是?LS=(α1,α2,α3,…,αn)幾點(diǎn)說明:3、廣義表的深度:廣義表展開以后所含括號(hào)的重?cái)?shù)。
廣義表C=(a,(b,c,d))的深度是2。
廣義表A=()的深度是1。
廣義表B=(A,C)的深度?1?
廣義表B的展開式=((),(a,(b,c,d)))
括號(hào)的重?cái)?shù)是三重,廣義表B的深度是3。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電梯安全知識(shí)競賽組織與實(shí)施合同3篇
- 二零二五版礦山勞務(wù)合同范本:礦山安全生產(chǎn)監(jiān)督協(xié)議3篇
- 基于2025年度財(cái)務(wù)軟件系統(tǒng)的定制開發(fā)合同3篇
- 2025年度臨時(shí)安保服務(wù)勞務(wù)合同實(shí)施細(xì)則4篇
- 2025年度光伏電站變壓器供貨與安裝服務(wù)合同3篇
- 2025年度環(huán)保節(jié)能照明設(shè)備研發(fā)與推廣合同3篇
- 2024-2025學(xué)年高中語文第一課走進(jìn)漢語的世界3四方異聲-普通話和方言練習(xí)含解析新人教版選修語言文字應(yīng)用
- 2025年度水路貨物運(yùn)輸貨物保險(xiǎn)理賠代理合同(GF定制版)
- 2025年校園食堂食品安全追溯原料采購管理服務(wù)合同3篇
- 二零二四年在建工業(yè)地產(chǎn)轉(zhuǎn)讓合同范本3篇
- 英語名著閱讀老人與海教學(xué)課件(the-old-man-and-the-sea-)
- 學(xué)校食品安全知識(shí)培訓(xùn)課件
- 全國醫(yī)學(xué)博士英語統(tǒng)一考試詞匯表(10000詞全) - 打印版
- 最新《會(huì)計(jì)職業(yè)道德》課件
- DB64∕T 1776-2021 水土保持生態(tài)監(jiān)測站點(diǎn)建設(shè)與監(jiān)測技術(shù)規(guī)范
- ?中醫(yī)院醫(yī)院等級(jí)復(fù)評(píng)實(shí)施方案
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
- 理正深基坑之鋼板樁受力計(jì)算
- 學(xué)校年級(jí)組管理經(jīng)驗(yàn)
- 10KV高壓環(huán)網(wǎng)柜(交接)試驗(yàn)
- 未來水電工程建設(shè)抽水蓄能電站BIM項(xiàng)目解決方案
評(píng)論
0/150
提交評(píng)論