Java实现稀疏矩阵的转置.pptx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Java实现稀疏矩阵的转置;一、程序的功能和特点

1.程序的功能:

三元组将稀疏矩阵的行号、列号和元素值作为三元组的三个元素进行存储,该程序实现对稀疏矩阵的顺序存储,并可以对稀疏矩阵进行转置。

2、程序的特点

采用Java面向对象语言。创建三元组存放稀疏矩阵。结合Java语言的特点、利用稀疏矩阵和三元组的存储特点,交换数组的行号和列号实现数组的转置。

二、程序的算法设计;算法二:(快速转置)

思想:假设:在实现转置之前,已经确定原有矩阵每一列的第一个非零元素在转置后矩阵三元组的位置,那么在遍历原有矩阵三元组便可得到转置后矩阵的三元组。将大大虽短时间复杂度。因此在进行转置之前,需要先确定原有矩阵每列非零元素的个数和每列第一个非零元素在转置后矩阵三元组的位置。设:cpot[col]为原有矩阵第col列第一个非零元素在转置后三元组的位置;

num[col]为原有矩阵第col列中非零元素的个数;则一定满足:cpot[1]=1;cpot[col]=cpot[col-1]+num[col-1];

;快速转置

intcopt[]=newint[pre_Transposition.getCol_num()];

copt[0]=1;

intnum[]=newint[pre_Transposition.getCol_num()];

//确定每列非零元素的个数

for(inti=0;i<pre_Transposition.getCount();i++){

num[pre_tripleList.get(i).getCol()]++;

}

//确定每列第一个非零元素在转置后三元组中的位置

for(inti=1;i<copt.length;i++){

copt[i]=copt[i-1]+num[i-1];

}

Tripletriple=newTriple();

for(inti=0;i<pre_Transposition.getCount();i++){

triple=pre_Transposition.getTripleList().get(i);

//获得遍历的三元组元素在转置后三元组的位置

intindex=copt[triple.getCol()]-1;

mild[index]=newTriple(triple.getCol(),triple.getRow(),triple.getData());

//下一个位置

copt[triple.getCol()]++;

}

Collections.addAll(post_tripleList,mild);

post_Transposition=newTSMatrix(post_tripleList,pre_Transposition.getCol_num(),

pre_Transposition.getRow_num(),pre_Transposition.getCount());

returnpost_Transposition;

};三、类的设计;输出结果:;

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档