算法学习系列(三)——数组

北战南征 提交于 2019-12-02 09:08:26

数组挑了自己不太熟悉的详细写一下

3.1 三角形数组

在一些场景下,三角型数组可以用来代替矩形数组,以达到节省空间的目的,即对角线某一侧的数据可以用默认值来代替

矩形数组较小的情况下,节省空间的效果不是很明显,但在10000*10000的数组中,三角型矩阵可以节约大约5000万个条目!

如何建立一个三角形数组:

把数组的值打包成一个一维数组

跳过不用包括的条目

规律:

N行数组需要的元素数是N-1行所需要的元素+N →若建立一个N行的三角型数组,需要为一个一维数组分配

个元素

通常情况下,第r行c列对应的索引公式是

 

3.2 稀疏数组

不表示消失条目的稀疏数组可以节约更多的空间。

建立稀疏数组的时候可以建立两个子类,一个ArrayRow类表示行,一个ArrayEntry类表示一行中的值。

ArrayRow中保存了一个行号,一个引用或指针指向下一个ArrayRow,与一个本行中第一个ArrayEntry的引用;ArrayEntry中保存了条目的列号,该条目的值,与一个指向本行下一个ArrayEntry对象的引用

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!