【问题标题】:Sorting really big arrays a problem?对非常大的数组进行排序有问题吗?
【发布时间】:2011-03-04 16:57:15
【问题描述】:

我一直在开发一个程序,用于比较 C++ 中不同排序算法的运行时间(到目前为止,我已经完成了堆排序、冒泡排序、插入排序和选择排序)。为了计算我使用不同大小的数组的时间,即 10000、100000、500000、1000000 和 10000000。

当我运行它时,一切都运行良好,直到我开始测试更大的数组。对于前 3 个数组,我得到了预期的结果,但是当我运行最后 2 个数组时程序不断崩溃。所以我的问题是,如果问题出在代码上,它们不会都崩溃吗?可能是内存管理问题吗?任何关于可能出错的帮助或想法将不胜感激。

这个http://pastebin.com/HCakminT 是我的驱动程序类的代码,它调用其他类,在这个特定的例子中是堆排序和冒泡排序。

谢谢:)

【问题讨论】:

  • 有关错误或代码的更多信息会有所帮助。可能出现内存不足、内存泄漏、整数溢出...

标签: memory-management crash sorting


【解决方案1】:

没有看到程序,很难准确预测发生了什么。但第一个问题很简单。您的程序可能出错的方式有很多,其中一些只会在 1.000.000 个或更多元素时导致崩溃。例如,如果您硬编码了 999.999 个元素的内存分配,您将不会看到 500.000 个元素的崩溃。

【讨论】:

  • 这里link 是我调用其他类的主要方法。在此特定示例中,冒泡排序和堆排序。我正在读取和写入文本文件。我不认为这会限制分配的内存,还是这样?
猜你喜欢
  • 2013-01-04
  • 2017-06-05
  • 1970-01-01
  • 2011-08-01
  • 2015-02-27
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多