当前位置:编程学习 > C#/ASP.NET >>

超大的二维数组(编译无法通过),有何替代办法。在线等

需要定义30,000  * 30,000 的二维数组。
机器情况:32位的系统,4G内存。

提示,引发类型为“System.OutOfMemoryException”的异常。请确保数组大小正确。

请问有没有可替代的办法 完成这个数组。
高人现身! --------------------编程问答-------------------- 大神们 给个说法

难道就只能用文件方式代替? --------------------编程问答-------------------- 用数据库来实现吧 --------------------编程问答-------------------- 为什么要定义那么大的数组呢?是否真的是能充分利用每个空间?
说说你具体要实现什么功能 --------------------编程问答-------------------- 楼主大神要在内存里搞9亿个对象? --------------------编程问答-------------------- 想想是不是有别的方法实现你的需求 --------------------编程问答-------------------- 是搞一个 最短路径算法。
是有三万个node,现在定义每两个node之间的距离。
就是一个30000*30000 的数组啊。
郁闷啊,貌似32位的系统 最多是16000*16000(*4) = 2G --------------------编程问答-------------------- 创建超过2G的数组
http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/1a12abaa-50bd-4d28-b3c1-9de06a1488e9 --------------------编程问答-------------------- 楼上的 大神,这个帖子我看到了。但 没搞明白 是怎么个方法。毕竟英文有点费劲 --------------------编程问答-------------------- 最短路径算法,不是像你这么用数组实现的吧。。
研究下图算法,Dijkstra,弗洛伊德都是比较经典的最短路径算法 --------------------编程问答-------------------- LS  这个经典算法我看了有几天了。 具体算法思想 代码什么的 我感觉自己理解的大概美错 --------------------编程问答-------------------- LZ这个问题给力啊!我表示支持下。 --------------------编程问答-------------------- 是的,通过数据库实现比较理想.
一下子处理整笔数据普通服务器很吃力.
把数据分组处理吧. --------------------编程问答-------------------- 简单说就是超大数组,换成多个小数组的交错数组

int[][] arr2 = new int[30000][];
for (int i = 0; i < arr2.Length; i++)
{
    arr2[i] = new int[30000];
}

但超过2G的内存分配,需要用VirtualAlloc。但你需要这么多内存么?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,