数组挑了自己不太熟悉的详细写一下
3.1 三角形数组
在一些场景下,三角型数组可以用来代替矩形数组,以达到节省空间的目的,即对角线某一侧的数据可以用默认值来代替
矩形数组较小的情况下,节省空间的效果不是很明显,但在10000*10000的数组中,三角型矩阵可以节约大约5000万个条目!
如何建立一个三角形数组:
把数组的值打包成一个一维数组
跳过不用包括的条目
规律:
N行数组需要的元素数是N-1行所需要的元素+N →若建立一个N行的三角型数组,需要为一个一维数组分配个元素
通常情况下,第r行c列对应的索引公式是
3.2 稀疏数组
不表示消失条目的稀疏数组可以节约更多的空间。
建立稀疏数组的时候可以建立两个子类,一个ArrayRow类表示行,一个ArrayEntry类表示一行中的值。
ArrayRow中保存了一个行号,一个引用或指针指向下一个ArrayRow,与一个本行中第一个ArrayEntry的引用;ArrayEntry中保存了条目的列号,该条目的值,与一个指向本行下一个ArrayEntry对象的引用
来源:https://blog.csdn.net/qq_40539928/article/details/102748117