不用十字链表也可以稀疏矩阵相加时间复杂度最坏情况达到O(tuA + tuB);思路比较简单就不赘述了,代码如下: 三元组: package 行逻辑链接的顺序表实现稀疏矩阵的相乘; public class Triple<T> { int row,col; T v; public Triple(){} public Triple(int row,int col, T v){ this.row = row; this.col = col; this.v = v; } } 构建矩阵存储结构: pac…
三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部分,时间复杂度为O(nu+tu):个人认为重排三元组之间的次序一步可以省略,虽然三元组数据变得杂乱无章,但是可以把时间复杂度提高到O(tu),如果是不考虑三元组,直接输出转置后的矩阵就可以采用这种方法;行逻辑链接实现稀疏矩阵相乘,十字链表实现稀疏矩阵相加正在编写中,即将更新.声明:转载,引用请以链接…
行逻辑链接,带行链接信息.程序有空指针BUG,至今未解决.还是C/C++适合描述算法数据结构.以后复杂的算法还是改用C/C++吧. 有BUG的代码,总有一天会换成没有BUG的. package 行逻辑链接的顺序表实现稀疏矩阵的相乘; public class Triple<T> { int row,col; T v; public Triple(){} public Triple(int row,int col, T v){ this.row = row; this.col = col; th…
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中,为我们提供了专门的顺序表的数据结构API—— ArrayList . Java中的ArrayList的基本存储思路和C语言中的思路相似,即将所有元素存储在一个数组中,当数组中的元素个数达到某种标准时,就要扩容.由于顺序表中的其他操作在Java和C中的实现方式大同小异,因此,本文不再详细介绍这些操作…
一.流程控制 Java中的流程控制语句可以这样分类:顺序结构.选择结构.循环结构.这三种结构就足够解决所有的问题了! 二.顺序结构 描述: Java流程控制的基本结构就是顺序结构,除非特别指明,否则Java代码就是按照顺序,语句与语句之间.代码块与代码块之间从上往下执行. 顺序结构是最简单的算法结构.它是任何一个算法都离不开的一种基本算法结构. 顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤. 示例: /* 按照自上而下的顺序执行!依次打印. */ publ…
(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 错误信息1: 错误原因:i和d位置错误 改正方法:i和d位置互换 错误信息2: 错误原因:\n后缺了一个" 改正方法:\n后加一个" 错误信息3: 错误原因:第二个printf(" Welcome\n")后缺了一个; 改正方法:printf(" Welcome\n")后加一个; 错误信息4: 错误原因:int mian()写错 改正方法:int mian()改成int main() 进行…
一.改错题 1.输出带框文字:在屏幕上输出以下3行信息. (1)源程序 对程序进行编译,发现错误信息1 错误原因:stdio拼写错误 改正方法:将stdio正确拼写 对程序进行编译,发现错误信息2 错误原因:第六行括号中缺少双引号 改正方法:加上缺少的引号 对程序进行编译,发现错误信息3 错误原因:第五行末尾缺少: 改正方法:加上: 对程序进行编译,发现错误信息4 错误原因:第二行中main拼写错误 改正方法:将main正确拼写 对程序进行编译,发现正确 运行结果如下: 2.计算某个数x的平方赋…
若有一个矩阵(m*n),其中非0元素个数远少于数值为0的元素个数,若开辟一个m*n大空间,来存储这样一个很多元素值为0的矩阵,浪费空间,于是我们只存储这些非0的元素的下标及数值 用一个结构体——三元组,来表示这些非零元素的行r,列c,数值v的信息 typedef struct //三元组 { int r; //非零元所在的行 int c; //非零元所在的列 int v; //非零元的值 } node; 一个完整矩阵的包括这些信息需要存储:矩阵的总行m,总列n,非零元的个数N,以及这些非零元的信…
目录 1:一元运算符 2:流程控制 3:分支之if语句 4:分支之if-else语句 5:分支语句之三元运算符 6:if和else if语句 7:switch-case语句 8:while循环 9:do-while循环 10:for循环 11:for循环案例 12:调试 复习 <script> /* * * 一元运算符: ++ -- * * 如果不参与运算, ++在前面还是在后面结果都是一样的 +1 * 如果不参与运算, --在前面还是在后面结果都是一样的 -1 * * var num=10;…
顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能会发生跳跃,就是有可能某些行代码不会执行. If语句: If() { } If(a>b) { Console.Write("a大于b"); } If else(a { Console.Write("a小于b"); } Else { Console.Write(&q…