pythonのデータ構造の性能解析

I.はじめに

  - ビッグOアルゴリズムと理解して異なる機能間で今、皆の違い。このセクションの目標は、あなたにPythonのリストや辞書ビッグOパフォーマンスの操作を指示することです。その後、我々は費用および各データ構造のためにこれらのデータ構造を使用する利点を説明するためにいくつかの時間ベースの実験を行います。彼らがこのブログの基本モジュールは、他のデータ構造が使用されている実装されているので、これらのデータ構造の効率性を理解することが重要です。このセクションでは、我々はなぜこのパフォーマンスを説明しません。後者のポストでは、辞書やいくつかの可能な実装のリストが表示され、パフォーマンスは実装依存ですか。

第二のリスト:

  - データ構造のリストの実現にPythonの設計者は、多くのオプションを持っています。これらの各オプションは、オペレーションのリストのパフォーマンスに影響を与える可能性があります。最も一般的な操作を行うために、彼らは正しい選択をする彼らは最も頻繁に使用されるリストのデータ構造を表示する方法を助け、および実装を最適化することは非常に高速です。

- 非常に一般的なプログラミングタスクのアクションのリストでは、リストを高めることです。我々はすぐにあなたがappendメソッドまたは連結演算子を使用することができ、長いリストを作成する2つの方法を考えます。しかし、これらの2つの方法が行う高効率という。それは適切なツールを選択することにより、独自のプログラムの効率を改善するためにあなたを助けることができるので、これは、あなたのために非常に重要です。

    - の4つの異なる方法を見てみましょう、我々はゼロの桁からn個のリストを生成することができます。まず、リストをループのために作成しようとし、その後、我々は代わりにステッチの追加使用されます。次に、我々はリストのコンストラクタを呼び出すことによってリストを作成するリスト作成、そして最後に、最も明白な方法包装レンジ機能を使用しています。

 

 - さんがどのくらいの長い道のりを計算するために4はtimeitモジュールの移動平均を使用してみましょう:

    - はtimeitモジュール:このモジュールは、Pythonコードレート/持続時間のテストセクションを実行するために使用されてもよいです。

    - Timerクラス:クラスは、コードの実行速度を測定するように設計された長さ/時間はtimeitのPythonモジュールです。プロトタイプ:クラスtimeit.Timer(STMT = 'パス'、セットアップ= 'パス')。

      - STMT引数:今後のテストコードブロック文という。

      - セットアップ:ファイル名を指定して実行のコードブロック時に希望の設定。

    - はtimeit機能:timeit.Timer.timeit(数= 100000)、関数は、時間の平均時間ステートメントの実行ブロック数を返します。

    - ケース:

 

- 平均実行はtimeitモジュールを使用している場合は、どのくらい長いの上記4つの方法を計算します。

 

注意:あなたは、いくつかのコール機能を含む、時間の実際のコストの上に見ることができますが、我々は4例では、関数呼び出しのオーバーヘッドをとることができると同じであるので、我々はまだ意味のある比較を取得します。このように、スプライシング操作は、文字列が正確ではない6.54ミリ秒を必要としますが、文字列の連結機能は、6.54ミリ秒を要します。あなたは空の関数に必要な時間のテストを呼び出すことができ、それは上記の数値から減算されます。他のリストに基づいて、残りの操作は、あなたはまた、平均的な時間のかかるを計算するために測定はtimeitを使用することができます。

  - 関連する操作の方式リストがパッケージ化される、基礎となるアルゴリズムは、我々が時間依存の動作を分析する必要はありません、我々は、参考のため以下の操作の一覧表の複雑さに基づいて、指定された時間を指示します。

 

III。辞書

  - 第二の主要pythonの辞書データ構造です。あなたは、さまざまな辞書やリストを思い出して、あなたはかなり重要な位置によるよりも、辞書プロジェクトにアクセスすることができます。

  - 時間の複雑さの辞書:

おすすめ

転載: blog.csdn.net/sinat_38682860/article/details/93776373