稀疏数组 Sparse Array
当一个数组中有大量元素相同时,可以用稀疏数组来表示,通过将有用信息记录在小规模的数组中来缩减程序规模
原数组:
[
0
0
0
0
1
0
2
0
0
0
3
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
23
0
0
0
]
\left[ \begin{matrix} 0 & 0 & 0 & 0 & 1 \\ 0 & 2 & 0 & 0 & 0 \\ 3 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 4 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 23 & 0 & 0 & 0 \\ \end{matrix} \right]
⎣⎢⎢⎢⎢⎢⎢⎡0030000200023000000000400100000⎦⎥⎥⎥⎥⎥⎥⎤
大小为:
5
×
6
=
30
5 \times 6 = 30
5×6=30
稀疏数组:
第一行记录原数组中所有的行数、列数以及所有的非零值个数。剩下的行依次记录非零点信息
行 | 列 | 值 |
---|---|---|
6 | 5 | 5 |
0 | 4 | 1 |
1 | 1 | 2 |
2 | 0 | 3 |
3 | 3 | 4 |
5 | 1 | 23 |
只记录有用的值及其位置,大小为: 3 × 6 = 18 3 \times6 = 18 3×6=18
相关章节
第一节 简述
第二节 稀疏数组 Sparse Array
第三节 队列 Queue
第四节 单链表 Single Linked List
第五节 双向链表 Double Linked List
第六节 单向环形链表 Circular Linked List
第七节 栈 Stack
第八节 递归 Recursion
第九节 时间复杂度 Time Complexity
第十节 排序算法 Sort Algorithm
第十一节 冒泡排序 Bubble Sort
第十二节 选择排序 Select Sort
第十三节 插入排序 Insertion Sort
第十四节 冒泡排序,选择排序和插入排序的总结
第十五节 希尔排序 Shell’s Sort
第十六节 快速排序 Quick Sort
第十七节 归并排序 Merge Sort