2011-03-04 21 views
0

我一直在研究一個程序,比較C++中不同排序算法的運行時間(到目前爲止,我已經完成了堆排序,冒泡排序,插入排序和選擇排序)。要計算我使用不同大小的數組的時間,即10000,100000,500000,1000000和10000000.排序真的很大的數組有問題嗎?

當我運行它時,一切都運行良好,直到我開始測試更大的數組。對於前3個數組,我得到了預期的結果,但是當我運行最後2個時程序不斷崩潰。所以我的問題是,如果問題是代碼不會全部崩潰?這可能是內存管理問題嗎?任何關於可能出錯的幫助或想法都將不勝感激。

http://pastebin.com/HCakminT是我的驅動程序類的代碼,它調用其他人,在這個特殊的例子中,堆排序和冒泡排序。

謝謝:)

+0

有關錯誤或代碼的更多信息將會有所幫助。內存不足,內存泄漏,整數溢出... – Dave 2011-03-04 08:24:28

+0

我只是把一個鏈接到我的代碼 – Jay 2011-03-04 08:57:50

回答

1

沒有看到程序,很難預測到底發生了什麼。但第一個問題很簡單。程序出錯的方式有很多種,其中有些會導致只有1000,000或更多元素的崩潰。例如,如果你已經硬編碼了999.999個元素的內存分配,你將不會看到500.000元素的崩潰。

+0

這裏[鏈接](http://pastebin.com/HCakminT)是我的主要方法,它調用其他類。在這個特殊的例子中,冒泡排序和堆排序。我正在閱讀並寫入一個文本文件。我不認爲這會限制分配的內存,或者這樣做? – Jay 2011-03-04 08:59:45