对称矩阵的压缩存储
来源:互联网 发布:程序员的思维修炼 txt 编辑:程序博客网 时间:2024/05/21 15:10
对称矩阵是一个N*N的方阵A,A中任意元素Aij,当且仅当Aij == Aji(0 <= i <= N-1&& 0 <= j <= N-1),则矩阵A是对称矩阵。以矩阵的对角线为分隔,分为上三角和下三角。
对称矩阵和压缩存储的对应关系:下三角存储i>=j,SymmetricMatrix[i][j] ==Array[i*(i+1)/2+j] ;
读取时,由于上三角上的数据与下三角存在Aij = Aji,则只需要将i与j的值互换便能通过下三角数据读取到上三角数据。
代码实现如下:
template<class T>class SymmetricMatrix //对称矩阵的下三角存储{public:SymmetricMatrix(T* arr, size_t n) //构造函数{_n = n;_arr = new T[n*(n+1)/2];for (size_t i = 0; i < n; i++){for (size_t j = 0; j < n; j++){if (i >= j)_arr[i*(i + 1) / 2 + j] = arr[i*n + j];elsebreak;}}}~SymmetricMatrix() //析构函数{delete[] _arr;_arr = NULL;_n = 0;}T& Access(size_t i, size_t j){if (i < j){swap(i, j);}return _arr[i*(i + 1) / 2 + j];}void Display() //打印完整矩阵{for (size_t i = 0; i < _n; i++){for (size_t j = 0; j < _n; j++){cout << Access(i, j) << " ";}cout << endl;}cout << endl;}protected:T* _arr;size_t _n;//矩阵大小 };
2 1
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- ~对称矩阵的压缩存储~
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵、稀疏矩阵的压缩存储
- 对称矩阵压缩存储
- 对称矩阵压缩存储
- 对称矩阵 压缩存储
- 对称矩阵压缩存储
- 对称矩阵及对称矩阵的压缩存储
- 【数据结构】对称矩阵及对称矩阵的压缩存储
- 对称矩阵及对称矩阵的压缩存储
- php文件下载
- tensorflow学习笔记十四:tensorflow中的tf.app.run()
- 前端解决跨域问题的8种方案
- Android 如何根据资源的名字获取其ID值
- 使用Tippecanoe切片后面状要素渲染出现空洞
- 对称矩阵的压缩存储
- V4L2 API及数据结构
- Android内存泄漏的检测APP
- windows下编译redis的32位程序
- 链表(篇2)删除右侧有更大值的节点
- I/O复用(一)
- C++Primer第五版 第十六章习题答案(51~60)
- rn 0.38 升到0.42 后 android出的问题 undefined is not function evaluating globalObject.hasownproperty('promi
- gcc -v以及-h处理