可能性の重複:
Cost of len() functionPythonの `len()`関数のbig-o表記法は何ですか?
は、リスト内のオブジェクトの上にlen()
反復処理を行い、その後、その数を返しますか?したがって、それを与えるO(n)。
それとも....
Pythonのリストはlen()
が呼び出されたときに、単にこの「カウント」を返し、それに追加して、それから削除されているすべてのオブジェクトのカウントを保持していますか?したがって、それを与えるO(1)。
可能性の重複:
Cost of len() functionPythonの `len()`関数のbig-o表記法は何ですか?
は、リスト内のオブジェクトの上にlen()
反復処理を行い、その後、その数を返しますか?したがって、それを与えるO(n)。
それとも....
Pythonのリストはlen()
が呼び出されたときに、単にこの「カウント」を返し、それに追加して、それから削除されているすべてのオブジェクトのカウントを保持していますか?したがって、それを与えるO(1)。
Pythonリストには、独自の長さが分かっています。 len
はO(1) timeとなります。 Lists are actually arrays、Lispのようなリンクリストではなく、length
が線形時間を要します。
"proof" http://wiki.python.org/moin/TimeComplexity – mgilson
__len__()
を定義するすべての組み込みオブジェクトでは、O(1)になります。独自のオブジェクトに__len__()
を実装すると、それは何かである可能性があります。
これは 'O(1)'です。これはあなたが必要とするものです:http://wiki.python.org/moin/TimeComplexity –