需要定义30,000  * 30,000 的二维数组。
机器情况:32位的系统,4G内存。提示,引发类型为“System.OutOfMemoryException”的异常。请确保数组大小正确。请问有没有可替代的办法 完成这个数组。
高人现身!

解决方案 »

  1.   

    是搞一个 最短路径算法。
    是有三万个node,现在定义每两个node之间的距离。
    就是一个30000*30000 的数组啊。
    郁闷啊,貌似32位的系统 最多是16000*16000(*4) = 2G
      

  2.   

    创建超过2G的数组
    http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/1a12abaa-50bd-4d28-b3c1-9de06a1488e9
      

  3.   

    最短路径算法,不是像你这么用数组实现的吧。。
    研究下图算法,Dijkstra,弗洛伊德都是比较经典的最短路径算法
      

  4.   

    简单说就是超大数组,换成多个小数组的交错数组int[][] arr2 = new int[30000][];
    for (int i = 0; i < arr2.Length; i++)
    {
        arr2[i] = new int[30000];
    }但超过2G的内存分配,需要用VirtualAlloc。但你需要这么多内存么?