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

【数据结构与算法】对称矩阵,三角矩阵 详解

给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。

对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素,而不是全部元素。

对称矩阵:对于一个n阶对称矩阵,我们只需要存储主对角线及其上方或下方的元素。这可以通过一个一维数组来实现,数组的长度为n*(n+1)/2。对于矩阵中的元素a[i][j],如果i<=j,则其在数组中的位置为i*(i+1)/2+j。

#include <stdio.h>#define MAX_ROW_INDEX 100
#define MAX_COL_INDEX 100
#define MAX_INDEX 100typedef int Elemtype;// 在存储对称矩阵的一维数组A中取对称矩阵的第i行第j列元素给elem
int getValueSymmetricMatrix(int A[], Elemtype *elem, int i, int j) {// 检查索引是否有效if(i < 1 || i > MAX_ROW_INDEX || j < 1 || j > MAX_COL_INDEX)return 0;int k;// 计算元素在数组中的位置if (i >= j) k = i * (i - 1) / 2 + j - 1;else k = j * (j - 1) / 2 + i - 1;// 获取元素的值*elem = A[k];return 1;
}

三角矩阵:对于一个n阶上三角矩阵,我们只需要存储主对角线及其上方的元素。这也可以通过一个一维数组来实现,数组的长度为n*(n+1)/2。对于矩阵中的元素a[i][j],如果i<=j,则其在数组中的位置为i*(i+1)/2+j。

#include <stdio.h>#define MAX_ROW_INDEX 100
#define MAX_COL_INDEX 100
#define MAX_INDEX 100typedef int Elemtype;// 在存储下三角矩阵的一维数组A中取下三角矩阵的第i行第j列元素给elem
int getValueLowerTriangularMatrix(int A[], Elemtype *elem, int i, int j) {// 检查索引是否有效if(i < 1 || i > MAX_ROW_INDEX || j < 1 || j > MAX_COL_INDEX)return 0;int n = MAX_INDEX;int k;// 计算元素在数组中的位置if (i >= j)  k = i * (i - 1) / 2 + j - 1;else  k = n * (n + 1) / 2;// 获取元素的值*elem = A[k];return 1;
}
http://www.lryc.cn/news/376531.html

相关文章:

  • Apache IoTDB 走进东南大学,深入分享项目发展历程与收获
  • Stable Diffusion AI绘画助力建筑设计艺术创新——城市建筑设计大模型分享
  • 没有 ADetailer,ComfyUI 画图脸崩了怎么办?
  • 防爆气象仪的工作原理
  • 深度学习入门5——为什么神经网络可以学习?
  • Integer溢出问题
  • 软件测试全面指南:提升软件质量的系统流程
  • 《逆贫大叔》:一部穿越时光的温情史诗
  • 【电机控制】FOC算法验证步骤——PWM、ADC
  • 如何衡量llm 数据集的多样性
  • 编程天才是什么意思
  • 创建npm私包
  • provider追加android:name的命名有哪些?
  • 长亭网络通信基础
  • hdfs源码解析之DFSClient
  • 智能化立体仓库的种类有哪些?
  • Stable Diffusion 3 如何下载安装使用及性能优化
  • c语言操作符详解
  • 【耐水好】强耐水UV胶水它的粘接强度和普通UV胶水比如何呢
  • jumpserver堡垒机集群搭建
  • Termius for Mac/Win:跨平台多协议远程管理利器
  • Unity OpenCVForUnity 安装和第二个案例详解 <二>
  • Lua实现自定义函数面向对象编程
  • docker安装消息队列mq中的rabbit服务
  • OpenAI新模型发布,免费开放GPT-4o!但只开放一点点...
  • idea的右边栏maven不见了(丢了)解决方案以及idea无法识别maven项目
  • 等待 chrome.storage.local.get() 完成
  • 004 AOP使用
  • Zookeeper 集群广播事务性能如何保证?
  • 【vue解决el-input组件自动填充用户名密码】