p=(int*)realloc(p, 10*sizeof(int)) /耐漏/重新分配空间昌枣烂岩消
减少办法:使敬旦用#pragmapack(1)字节对齐结构;在结构可以包含不同类型的数据的地方使用联合;使用位字段而不是整数来存储标志和小整数;避免使用固定局瞎长度的字符数组来存储字符串,实现字符串池和使用指针。programspace:程序空间,内存是计算机系统中一个主要部件,用于保存进程运行时的程序和数据,也称可执行存储器。在计算机中,内存空间一般是指主存储器空间(物理地址空间)或系统为一个用户程序分配内存空间。扩展内存空间的方法一般有增加内存大小和虚拟内存。
空间是与时间相对的一种物质客观存在形式,但两者密不可分,按照宇宙大爆炸理论,宇宙从奇点爆炸之后,宇宙的状态由初始的“一”分裂开来,从而有了不同的存在桐稿空形式、运动状态等差异,物与物的位置差异度量称之为“空间”,位置的变化则由“时间”度量。空间由长度、宽度、高度、大小表现出来。通常指四方(方向)上下。
是(row,col,value),这样把所有不为零的值组成一个向量。这种存储方式比二维数组节省了不少空间,当然还可以进一步节省,因为三元组里面row或者col重复存储了,一行或者一列存一次就行了,按这种思路走下去就是行压缩存储了。那具体什么是行压缩存储呢?行压缩存储的思想就是,把所有不为零的值按行访问的顺序组成一个向量,然后再把每一行值不为0的列的下标存下来,这个两个向量的大小和档大稀疏矩阵中不为0的值得个数相同,当然要实现对行压缩矩阵的访问,还要把每一行的不为判咐0的列的下标在第二个向量中开始的位行冲竖置存下来,有人把这个叫做指针。有了这三个向量就可以实现对矩阵实现高效的按行访问了。行压缩存储比三元组优秀的不仅是空间的压缩,还有就是行访问时的高效。三元组如果是有序的,可以二分查找来访问一行,但是行压缩存储按行访问时的时间复杂度是常数级的。 大家可以参考下面这个行压缩矩阵示意图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)