私は反復する配列リストを持っています。各反復では私は1つの要素を取得するためにget()
を呼び出し、その項目はいくつかの条件に合格した場合、それは私が時間の複雑さがここには何かわからないadd()
配列リストを反復する時間の複雑さ
List<Item> items = new ArrayList<Item>();
List<Item> lessItems = new ArrayList<Item>();
for(int index = 0; index < items.size(); index++){
Item toCheck = items.get(i);
if(toCheck meets some condition){
lessItems.add(toCheck);
}
}
を使用して新しい配列リストに追加されます。私はすべてのアイテムにget()を呼び出すので、それはO(n)です。次に、潜在的にすべてのアイテムにadd()を呼び出して、別のO(n)があるようにします。これはあまり確かではありません。
O(n)+ O(n)はO(2n)であり、2を落とすことができます(入力に対して定数なので)。 –
@ElliottFrischそれは本当ではありません。 javaのarraylistの最後の要素に挿入するのは 'O(n)'ではありません。私の答えを見てください。 – hqt
@ElliottFrisch明らかに他の人があなたに同意しない。あなたのものと同じ、私の答えをdownvoteするのに十分です。 –