2016-07-24 2 views
0

list.remove(100)を呼び出して値100の要素を削除すると、リストに整数のリストが含まれていて、O(n)O(logN)かどうか疑問に思っていますか?私はそれがO(n)だと思っていましたが、Python 2.7のリストにさらにパフォーマンスを改善する内部最適化があるかどうかはわかりません。ありがとう。Python 2.7のlist.remove(value)のパフォーマンス

に関して、 林

+0

自分で確認できます。さまざまなサイズのリストを作成し、ヌルアクションを実行してオーバーヘッドがかかる時間を取得し、アクションを実行し、リストの長さに関連してどれくらいかかるかを計算します。 – boardrider

答えて

1

Removing an item from a list in Python is O(n)。これは、要素が欠落しているため、メモリ内の基礎となる領域を「ずらす」必要があるためです。一定の時間の削除のためにPythonで使用できるリンクリストなどの他の実装がありますが、組み込みのリストデータ構造は確実にO(n)

+0

おかげでジェームス、参照のパフォーマンスのリストは素晴らしいです。投票してください。回答を数分で記入してください。 –

+0

あなたの返信を回答としてマークしてください、Jamesに助けてくれてありがとうございます。 :) –