【C# 数据结构】数组 广义表 稀疏矩阵

数组

数组是一种数据集合,数据元素按次序存储于一个地址连续的内存空间中。数组是其他数据结构实现顺序存储的基础。

线性表结构可以具有弹性,既可以是简单的数组,也可以扩展为复杂的数据结构----广义表
逻辑上数组可以看成二元组<下标,值>,哈希表也是二元组<健,值>
C#语言中,数组都是在运行时分配所需要的空间。

一维数组
则第i个教据元素的地址为:

addr(ai)=addr(a0)+i*c  //addr(a0)为数组的首地址 C为每个元素占用c个存储单元

根据数组元素的下标就可计算出该元素的存储地址,因而可 存取数组元素的值,并且该操作的复杂度是O(1),具有这种特性的在储结构称为随机存储结构,数组是一种随机存储结构。

二维数组

二维数组表示数组的数组,二维数组常用来表示一个矩阵,由于存储的效率低,所有经常采用稀疏矩阵来压缩

Am×n表示由m×n个元素ai,j组成的矩阵,可以看成是由m行一维数组组成的(行)数组,或是n列一维数组组成的(列)数组。
矩阵Am×n也可以视为一种特殊的双重线性表,矩阵中的每个元素ai,j同时属于两个纡性表:第i行的线性表和第j列的线性表。

二维数组的顺序存储结构具有随机存储特性,对数组元素进行随机存取的时间复杂度为O(1)。

稀疏矩阵

当矩阵的非零元素只占据总元素的10%时,这类矩阵就叫稀疏矩阵(sparse matrix)。用矩阵的随机存储特性换取稀疏矩阵的压缩空间。

 

posted @ 2022-05-18 08:09  小林野夫  阅读(153)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/