對於我需要寫一個方法,一個項目,時間充滿了用500萬個隨機整數一個的ListIterator,然後用鏈表的get(index)方法在LinkedList的穿越。巨人的遍歷LinkedList的
我沒有問題與listIterator遍歷它,並在75毫秒左右完成。但是,在嘗試500萬整數的get方法遍歷之後,我在1.5小時左右停止了運行。
我使用的getTraverse方法是類似下面的示例代碼(但是礦用類中的其他方法進行分組,並不含一成不變的,而是以同樣的方式)。
public static long getTraverse(LinkedList<Integer> list) {
long start = System.currentTimeMillis();
for (int i = 0; i < linkedList.size(); i++) {
linkedList.get(i);
}
long stop = System.currentTimeMillis();
return stop - start;
}
這工作完全正常的尺寸50,500,5000,50000的整數LinkedLists,並花了相當長一段時間,但完成500000
我的教授往往是有說明書,非常非常曖昧遇到問題時無助。所以,我不知道我的代碼是否被破壞,或者他是否被指針中的Integers所帶走。任何輸入讚賞。
在我的數據結構類中,我們不得不等待24小時以上才能完成對大小數組的排序。 (這也是O(n^2)算法),所以聽起來很正常。 – 4castle
你的導師試圖教你的一個教訓是,LinkedList對於大量數值非常緩慢。沒有隨機訪問方法。爲了得到(n)它必須從第一個元素開始並迭代到n。 –
好吧,只要確保那麼!我認爲這需要很長時間,但我認爲我必須做些什麼錯等待幾個小時。我上一個項目花了30分鐘跑完。這就說得通了! –