稀疏阵列是什么意思?
稀疏数组或稀疏矩阵是一个大部分元素为零的数组。
稀疏数组的特点。
- 稀疏数组是一个大多数元素都有相同值的数组(默认值为零或空)。
- 稀疏矩阵是那些大部分元素等于零的数组。
- 稀疏数组是一个数组,其中的元素没有从零开始的连续索引。
- 当非零元素较少时,稀疏数组被用于数组之上。稀疏数组需要较少的内存来存储元素,并且可以节省计算时间。
稀疏数组的例子。



为什么需要稀疏数组而不是简单数组来存储元素。
- 存储。 当有最大数量的零元素和最小数量的非零元素时,我们使用稀疏数组而不是简单数组,因为它需要较少的内存来存储元素。在稀疏数组中,我们只存储非零元素。
- **计算时间:**在稀疏数组中,我们只存储非零元素,因此,只遍历非零元素所需的计算时间较少。
稀疏数组的表示方法。
稀疏数组可以用两种方式表示。
- 阵列表示法
- 链接列表表示法
1.阵列表示法。
为了表示一个稀疏数组,使用了二维数组,有三行,即。行,列,和值。
**行:**存在非零元素的行的索引。
列。非零元素所在的列的索引。
**值。**存在于(行,列)索引中的非零值。

稀疏数组的阵列表示
2.链接列表表示法。
使用链接列表来表示稀疏数组,每个节点有四个字段,即。行,列,值,和下一个节点。
**行:**存在非零元素的行的索引。
列。存在非零元素的列的索引。
**值。**存在于(行,列)索引中的非零值。
**下一个节点。**它存储下一个节点的地址。

稀疏数组的链接列表表示法
稀疏数组的数组表示法的实现。

稀疏数组的数组表示法的实现
下面是稀疏数组的表示方法。
C++
// Implementation of array representation// of the sparse array#include <iostream>using namespace std;int main(){int sparse[4][4] = { { 0, 0, 7, 0 },{ 1, 0, 0, 0 },{ 2, 0, 5, 0 },{ 0, 8, 0, 4 } };int s = 0;for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++)if (sparse[i][j] != 0)s++;int representsparse[3][s];int k = 0;for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++)if (sparse[i][j] != 0) {representsparse[0][k] = i;representsparse[1][k] = j;representsparse[2][k] = sparse[i][j];k++;}cout <<"Representation of Sparse array using arrays : ""\n";for (int i = 0; i < 3; i++) {for (int j = 0; j < s; j++)cout <<" " << representsparse[i][j];cout <<"\n";}return 0;} |
输出
Representation of Sparse array using arrays :
0 1 2 2 3 3
2 0 0 2 1 3
7 1 2 5 8 4