1. package 数组和矩阵;
  2. public class DuiChenJuZhenYaSuo {
  3. int[] arr;
  4. int order; //矩阵的阶数
  5. int n; //压缩后一位数组的个数
  6. public DuiChenJuZhenYaSuo(int order) {
  7. this.n= order * (order + 1) / 2;
  8. this.arr = new int[this.n];
  9. this.order = order;
  10. }
  11. public void init(int[][] a) {
  12. int k = 0;
  13. for (int i = 0; i < order; i++) {
  14. for (int j = 0; j <= i; j++) {
  15. arr[k++] = a[i][j];
  16. }
  17. }
  18. }
  19. public void init(int[] a) {
  20. for (int i = 0; i < n; i++) {
  21. arr[i] = a[i];
  22. }
  23. }
  24. public void print() {
  25. int k;
  26. for (int i = 1; i <= order; i++) {
  27. for (int j = 1; j <= order; j++) {
  28. k= (i >= j) ? (i * (i - 1) / 2 + j - 1) : (j * (j - 1) / 2 + i - 1);
  29. System.out.print(arr[k] + " ");
  30. }
  31. System.out.println();
  32. }
  33. }
  34. public DuiChenJuZhenYaSuo merge(DuiChenJuZhenYaSuo a) {
  35. DuiChenJuZhenYaSuo test = new DuiChenJuZhenYaSuo(this.order);
  36. int k;
  37. for (int i = 1; i <= order; i++) {
  38. for (int j = 1; j <= order; j++) {
  39. k = (i >= j) ? (i * (i - 1) / 2 + j - 1) : (j * (j - 1) / 2 + i - 1);
  40. test.arr[k] = this.arr[k] + a.arr[k];
  41. }
  42. }
  43. return test;
  44. }
  45. public static void main(String[] args) {
  46. DuiChenJuZhenYaSuo test = new DuiChenJuZhenYaSuo(3);
  47. DuiChenJuZhenYaSuo test2 = new DuiChenJuZhenYaSuo(3);
  48. int[][] a = { { 1, 0, 0 }, { 2, 3, 0 }, { 4, 5, 6 } };
  49. int[] b= {1,2,3,4,5,6};
  50. test.init(b);
  51. test2.init(a);
  52. test = test.merge(test2);
  53. test.print();
  54. }
  55. }

对称矩阵与压缩存储算法(java实现)的更多相关文章

  1. C++ 特殊矩阵的压缩存储算法

    1. 前言 什么是特殊矩阵? C++,一般使用二维数组存储矩阵数据. 在实际存储时,会发现矩阵中有许多值相同的数据或有许多零数据,且分布呈现出一定的规律,称这类型的矩阵为特殊矩阵. 为了节省存储空间, ...

  2. java数据结构至对称矩阵压缩存储

    刚刚刷java选择题,遇到的对称矩阵压缩存储问题,我们知道对称矩阵是aij=aji的矩阵,压缩存储可以采用一维数组和二维数组存储. 此处只讨论一维数组存储的形式,设数组下标从0开始,对称矩阵为n维矩阵 ...

  3. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)

    三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...

  4. 数据的压缩存储与解压缩算法实现(C语言)

    在一些嵌入式的项目设计中,空间是相当宝贵的,因为一个CPU的存储是有限的,所以此时我们在保存数据的时候,喜欢来进行压缩保存,著名的有哈夫曼树算法,专门用来做压缩的算法,当然,本节我们不讨论这些稍微高级 ...

  5. Hive(八)Hive的Shell操作与压缩存储

    一.Hive的命令行 1.Hive支持的一些命令 Command Description quit Use quit or exit to leave the interactive shell. s ...

  6. 无向图的最短路径算法JAVA实现

    一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图. ...

  7. 无向图的最短路径算法JAVA实现(转)

    一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图. ...

  8. Floyd算法java实现demo

    Floyd算法java实现,如下: https://www.cnblogs.com/Halburt/p/10756572.html package a; /** * ┏┓ ┏┓+ + * ┏┛┻━━━ ...

  9. 特殊矩阵的压缩存储(转自chunlanse2014)

    对称矩阵 对于一个矩阵结构显然用一个二维数组来表示是非常恰当的,但在有些情况下,比如常见的一些特殊矩阵,如三角矩阵.对称矩阵.带状矩阵.稀疏矩阵等,从节约存储空间的角度考虑,这种存储是不太合适的.下面 ...

随机推荐

  1. spring框架 构造方法注入

    在resources里面新建applicationContext.xml 配置如下: <?xml version="1.0" encoding="UTF-8&quo ...

  2. dock panel

    http://www.cnblogs.com/masterfy/archive/2009/06/02/1494593.html http://www.cnblogs.com/wuhuacong/p/3 ...

  3. SystemTap 内核调试

    一.简介 Systemtap是一个Linux下的全新的调式.诊断和性能测量工具,是我目前所知的最强大的内核调试工具. 参考: http://m.blog.csdn.net/blog/hnllei/75 ...

  4. python动态捕获异常-乾颐堂

    在讨论动态捕获异常时让我大吃一惊的是,可以让我找到隐藏的Bug和乐趣... 有问题的代码 下面的代码来自一个产品中看起来是好的抽象代码 - slightly(!) .这是调用一些统计数据的函数,然后进 ...

  5. [Tools]SurveyMonkey

    做问卷调查,推荐一个好工具,免费的 SurveyMonkey : it's free, quick & easy! https://www.surveymonkey.com/

  6. ToList和ToDataTable(其中也有反射的知识)

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Refle ...

  7. 团队作业7——alpha阶段之事后诸葛亮分析

    事后诸葛亮分析 1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决查询物流信息步骤繁琐的问题.定义还算清楚.典型用户主要针对一些不熟悉淘 ...

  8. Chrome Console API 参考

    https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference

  9. UVa 12093 Protecting Zonk (树形DP)

    题意:给定一个有n个节点的无根树,有两种装置A和B,每种都有无限多个.在某个节点X使用A装置需要C1的花费,并且此时与节点X相连的边都被覆盖.在某个节点X使用B装置需要C2的花费,并且此时与节点X相连 ...

  10. SDK管理利器——sdkman

    SDK管理利器--sdkman 项目使用java的开发者一定会为新配环境变量而头大,sdkman很好的解决了系统sdk管理的痛点,仅需简单的几行命令就可以完成sdk的安装,更改默认版本.再也不用担心环 ...