プロジェクトでは、5百万のランダムな整数が埋め込まれたLinkedListのトラバーサルに、listIteratorを使用し、次にLinkedListのget(index)メソッドを使用するメソッドを記述する必要があります。巨大なLinkedListのトラバーサル
私はlistIteratorでトラバースしても問題はありませんでしたが、約75msで完了しました。しかし、getメソッドのトラバーサルを5百万の整数で試行した後、私はちょうど約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が非常に遅く、多数の値を持つことです。ランダムアクセス方法はありません。 'get(n)'には最初の要素から始め、 'n'に反復する必要があります。 –
さて、それを確認してください!私はそれが非常に長い時間がかかるだろうと思ったが、何時間も待つのが間違っていなければならないと思った。私の最後のプロジェクトは30分かかりました。それは理にかなっている! –