2010-11-24 15 views
0

こんにちは 私はこのようなコードを書いています。時間の複雑さはO(n)ですか?このwhileループの時間複雑度

 DNode header = new DNode(null, null, null); 
     DNode trailer = new DNode(null, header, null); 
     header.next = trailer; 
     for (Point point : pointList) { 
      DNode node = new DNode(point, header, trailer); 
      dList.addLast(node); 
      header = node; 
     } 

私はdList(Doubly-Linked list)pointList(ArrayList)からすべてのオブジェクトをコピーすることにしたいです。 ありがとう

答えて

3

はい。ここではO(n)である明示的なループは1つしかなく、二重リンクされたリストの分かりやすい実装を前提として、ループ内のすべてがO(1)です。

+0

このように二重リンクされたリストの最後にリストを追加すると、O(n)またはO(1)が発生するという問題がありますか? – user472221

+0

@ user472221:あなたは使用している実装について教えてくれていませんが、一般に二重リンクリストには両端に挿入するO(1)時間があります。 JDKの 'LinkedList 'を使っているなら、それは確かです。 –

+0

パブリックvoid addLast(DNode v){ addBefore(予告編、v); } – user472221