数据结构学习,数组和数组矩阵的三种压缩
前言:
前面我们把链表,栈,队列,串,都学习的差不多了,接下我们要学习,数组了,数组在我们编程中用到很多,因为它是最基本的存储方法,它分为一维数组和二维数组,数组和之前学过的一样,我们也是可以看作一个线性表,因为数组是一个有序的序列,接下来我们简单学习一下数组和稀疏矩阵。
每日一遍,防止颓废
1.数组
数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。讲人话就是:(在 C 语言中 a[8],a 代表数组名,[]代表一个数组的写法,8 代表个数,然后从 0 下标开始到 7 下标结束 ,然后有序的序列)
1.1 初始化数组
1.2 二维数组
二维数组本质上是以数组作为数组元素的数组,即“数组的数组“,二维数组又称为矩阵,行列数相等的矩阵称为方阵。二维数组,在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组。讲人话:(a [5] [4] ,a 代表数组名,5 代表行数,4 代表列数,我觉得这样表示比讲理论要通俗易懂的多)
1.3 特殊矩阵的压缩存储
既然提到了,我们就简单讲一下,不要被这个名字吓到了,不是很难,博主都有点不想讲,提到了,我们就简单了解一下。
1.3.1 对称矩阵
对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。
计算公式:
1.3.2 三角矩阵
三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形
对重复的值进行压缩,有着两个公式,如果你的重复的值在上三角但是你的行数比列数多,还是用的上三角的公式,只是作用域变了,改变作用域。
1.3.3 对角矩阵
对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为 0 的矩阵,常写为 diag(a1,a2,...,an) 。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为 1 的对角矩阵称为单位矩阵。对角矩阵的运算包括和、差运算、数乘运算、同阶对角阵的乘积运算,且结果仍为对角阵。
公式就不推了,比较简单,高中的数学知识。差不多就是 2*i+j
总结:
数组这一篇文章是比较简单的,博主没有做过多的介绍,因为不是很难,对压缩矩阵感兴趣的可以自己尝试改进,进行更深层次的研究,博主才疏学浅,只是简单的介绍了一下,哈哈哈,传作不易,点赞关注,评论哦!!
版权声明: 本文为 InfoQ 作者【IC00】的原创文章。
原文链接:【http://xie.infoq.cn/article/68a176f47c476a578b5b197a8】。文章转载请联系作者。
评论