- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线性串列的定义.ppt
範例2.3.8 請設計一Java程式,將左下三角形矩陣壓縮為一維陣列。 2-3 矩陣 右下三角形矩陣矩陣 即對nxn的矩陣A,假如in-j+1,那麼A(i,j)=0,如下圖所示 同樣的,對映到一維陣列B(1: )的方式,也可區分為以列為主與以行為主兩種陣列記憶體配置方式 2-3 矩陣 右下三角形矩陣矩陣 以列為主(Row-major) 2-3 矩陣 以列為主(Row-major) k= *[1+(i-1)]+j-(n-i) = +j-n = +j-n k= +i-(n-j) = +i-n 範例 2.3.10 假設有一個4x4的右下三角形矩陣,以行為主對映到一維陣列B,求元素a32所對映B(k)的k值為何? 2-3 矩陣 解答: 代入公式k= +i-n = +3-4 =2 範例 2.3.11 一個低部三角陣列(Lower Triangular Array),B是一個nxn的陣列,其中B[i,j]=0,ij。 ?求B陣列中不為0的最大個數。 ? 如何將B陣列以最經濟的方式儲存在記憶體中。 ?寫出在?的儲存方式中,如何求得B[i,j],i=j。 2-3 矩陣 2-3 矩陣 解答: ?由題意得知B為左下三角形矩陣,因此不為0的個數為 可將B陣列非零項目的值以列為主(Row-major)對映到一維陣列A中,且如下圖所示: ?以列為主的對映方式,bij=A(k) ? k= +j 帶狀矩陣 一種在應用上較為特殊且稀少的矩陣。 定義就是在上三角形矩陣中,右上方的元素皆為零,在下三角形矩陣中,左下方的元素也為零,也就是除了第一列與第n列有兩個元素外,其餘每列都具有三個元素,使得中間主軸附近的值形成類似帶狀的矩陣。如下圖所示: 2-3 矩陣 QA討論時間 本章結束 多維陣列(3/3) 以行為主(Row-major) 也可以直觀地將陣列A視為u3個u2*u1的二為陣列,再將每個二維陣列視為有u2個一維陣列,每一陣列含有u1個元素。每個元素有d單位空間,且α為起始位址。 可以得到aijk元素的以下位址計算公式: 2-2 陣列 Loc( A(aijk)=α+(k-1)u2u1d+(j-1)u1d+(i-l)d 範例 2.2.10 假設有以列為主排列的程式語言,宣告A(1:3,1:4,1:5)陣列,且Loc(A(1,1,1))=100,請求出Loc(A(1,2,3))=? 2-2 陣列 解答:直接代入公式 Loc(A(1,2,3))=100+(1-1)*4*5*1+(2-1)*5*1+(3-1)*1=107 範例 2.2.11 A(6,4,2)是以行為主方式排列,若α=300,且d=1,求A(4,4,1)的位址? 2-2 陣列 解答:這題是以列為主(Row-Major),直接代入公式即可:Loc(A(4,4,1))=300+(1-1)*6*4+(4-1)*2+(6-1)=300+6+5=311 範例 2.2.12 假設有一三維陣列宣告為A(1:3,1:4,1:5),A(1,1,1)=300,且d=1,試問以行為主的排列方式下,求出A(2,2,3)的所在位址。 2-2 陣列 解答: Loc(A(1,2,3))=300+(3-1)*3*4*1+(2-1)*3*1+(2-1)=328 範例 2.2.13 有一個三維陣列A(-3:2,-2:3,0:4),以Row-major方式排列,陣列之起始位址是1118,試求Loc(A(1,3,3))=?(d=1) 2-2 陣列 解答: 假設A為u1*u2*u3陣列,且以row-major方式排列 m=2-(-3)+1=6 n=3-(-2)+1=6 o=4-0+1=5 公式如下: =Loc(A(1,3,3))=318+(1-(-3))*6*5+(3-(-2))*5+(3-0)=318+120+25+3=1266 範例 2.2.14 假設有一三維陣列宣告為A(-3:2,-2:3,0:4),A(1,1,1)=300,且d=2,試問以行為主的排列方式下,求出A(2,2,3)的所在位址。 2-2 陣列 解答: m=2-(-3)+1=6 n=3-(-2)+1=6 o=4-0+1=5 Loc(A(1,2,3
文档评论(0)