当前位置: 首页 > news >正文

稀疏数组的保存优化(java版本)

什么是稀疏矩阵?

 矩阵中,若数值为 0 的元素数目远远多于非 0 元素的数目,并且非 0 元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非 0 元素数目占大多数时,则称该矩阵为稠密矩阵。     这种稀疏矩阵保存有价值的数据较少,所以可以进行压缩,建议一个新的数组,记录每个非0的坐标和值,比如一个n维数组可以建议一个(n+1)维数组来记录值,这样可以大大减少保存成本,但需要注意的是,当元素个数超过1/(n+1)的时候,这种存储算法会超过其原来的成本。

 

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/*
* 稀疏矩阵算法
* */
public class InfoTest {public static void main(String[] args) throws IOException {int[][] arraydata =new int[11][11];arraydata[1][1]=1;arraydata[2][3]=7;arraydata[4][7]=13;int sum=0;for(int row[]:arraydata){for(int dt:row){System.out.printf("%d\t",dt);if(dt>0){sum++;}}System.out.println();}int[][] record=new int[sum+1][3];record[0][0]=arraydata.length;record[0][1]=arraydata.length;record[0][2]=sum;int count=0;for(int i=0;i<arraydata.length;i++){for(int j=0;j<arraydata.length;j++){if(arraydata[i][j]>0){count++;record[count][0]=i;record[count][1]=j;record[count][2]=arraydata[i][j];}}}int[][] data_list =new int[11][11];for(int i=1;i<=record.length-1;i++){int j=record[i][0];int k=record[i][1];data_list[j][k]=record[i][2];}System.out.println("**********");for(int row[]:data_list){for(int dt:row){System.out.printf("%d\t",dt);if(dt>0){sum++;}}System.out.println();}}
}

 

http://www.lryc.cn/news/227441.html

相关文章:

  • Git GUI、SSH协议和IDEA中的Git使用详解
  • Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器
  • 计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战
  • FlinK之检查点与保存点机制
  • UE5 新特性 Nanite 开启
  • 仿写知乎日报第四周
  • MySQL join原理及优化
  • js案例:打地鼠游戏(打灰太狼)
  • 删除杀软回调 bypass EDR 研究
  • Ansible自动化部署工具-组件及语法介绍
  • postgresql实现job的六种方法
  • layui 表格(table)合计 取整数
  • 深入理解 TCP;场景复现,掌握鲜为人知的细节
  • 【MySQL系列】 第二章 · SQL(中)
  • IBM Qiskit量子机器学习速成(一)
  • 音视频基础知识
  • ida81输入密码验证算法分析以及破解思路
  • C语言——贪吃蛇
  • Android sqlite 使用简介
  • UE地形系统材质混合实现和Shader生成分析(UE5 5.2)
  • Git分支与Git标签的介绍及其场景应用
  • Three.js——基于原生WebGL封装运行的三维引擎
  • 第八章认识Express框架
  • 【K8s集群离线安装-kubeadm】
  • python工具CISCO ASA设备任意文件读取
  • TCP关闭的两种方法概述
  • Git的Hooks机制
  • 代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II
  • Rust教程6:并发编程和线程通信
  • JVM在线分析-监控工具(jps, jstat, jstatd)