多维数组真可怕!!

xueyong1203 xueyong1203 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
前些日子有人在讨论int[50][2] 和int[2][50]谁更耗内存
手头一个项目刚好碰到这个情况

这个项目需要用到一个函数
输入半径,以某个基准点为圆心,得到圆形轨迹和碰撞检测矩形相交区域内的路径点的个数(这个圆其实是用查表的方式画的若干个点,这些点我这里姑且称做路径点),如果路径点的个数符合要求,则存储这个基准点,最后返回全部符合要求的基准点。
因为对路径点的个数有特定的要求,而且我苦思冥想了几个小时也没有发现一个简单且精确的判定方式,所以只好在一个范围内((12 + r) * (20 + r)左右)来遍历每个坐标点

int totalPoint = (12 + r) * (20 + r);//所有的点
最初我用于储存基准点的数组为int[][] validPos = new int[totalPoint][2]
validPos[index][0] = x;
validPos[index++][1] = y;

The Radious is 3
ValidPointerNum::10
MemoryUsed::14044

The Radious is 4
ValidPointerNum::25
MemoryUsed::17040

The Radious is 5
ValidPointerNum::34
MemoryUsed::20092

The Radious is 6
ValidPointerNum::59
MemoryUsed::23816

感觉占用内存有点大,然后该成byte[][] validPos = new byte[totalPoint][2]
::::byte::::
The Radious is 3
ValidPointerNum::10
MemoryUsed::12132

The Radious is 4
ValidPointerNum::25
MemoryUsed::14700

The Radious is 5
ValidPointerNum::34
MemoryUsed::17316

The Radious is 6
ValidPointerNum::59
MemoryUsed::20508

比较了一下,好象没有减少多少~~这时突然想起了int[50][2]和int[2][50]的那个帖子
于是就修改为
int[] validPos = new int[totalPoint << 1]
validPos[index] = x;
validPos[index + 1] = y;
index += 2;
这时候打印出来结果:
The Radious is 3
ValidPointerNum::20
MemoryUsed::4444

The Radious is 4
ValidPointerNum::50
MemoryUsed::5300

The Radious is 5
ValidPointerNum::68
MemoryUsed::6172

The Radious is 6
ValidPointerNum::118
MemoryUsed::7236

几乎减小了2/3

可怕~~~
...全文

相关推荐

Python的多维空数组赋值方法

下面小编就为大家分享一篇Python的多维空数组赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38530415

python多维数组切片方法

1、数组a第0个元素(二维数组)下的所有子元素(一维数组)的第一列 import numpy as np b=np.arange(24) a=b.reshape(2,3,4) print a print a[0,:,0] 2、取所有二维数组下的每个二维数组的第0个元素(一维数组) b=np.arange(24) a=b.reshape(2,3,4) print a print '--------------------' print a[:,0] 结果: [[ 0 1 2 3] [12 13 14 15]] 3、取所有二维数组下面的所有一维数组的每一个一维数组的第0个元素 b=np.

weixin_38741030

python numpy 一维数组转变为多维数组的实例

如下所示: import numpy new_list = [i for i in range(9)] numpy.array(new_list).reshape(3,3) 借助numpy库; 以上这篇python numpy 一维数组转变为多维数组的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Python的numpy库中将矩阵转换为列表等函数的方法python的dataframe转换为多维矩阵的方法Python嵌套列表转一维的方法(压

weixin_38547151

java多维数组

详解java多维数组,提高对java多维数组的理解

qq_30594341

多维数组下标计算 多维数组下标计算 多维数组下标计算

多维数组下标计算多维数组下标计算多维数组下标计算多维数组下标计算多维数组下标计算多维数组下标计算

angie_28
评论 4
收藏 已收藏
分享
返回顶部
xueyong1203
J2ME 13,096 成员 26,491 内容