[解決済み] Pythonの標準ライブラリにバランス2分木のモジュールはありますか?
2023-04-07 17:34:03
質問
のためのモジュールはありますか? AVL ツリー または 赤黒い木 とか、Pythonの標準ライブラリにあるバランスの取れた二分木のようなものでしょうか?
どのように解決するのですか?
いいえ、stdlibにはバランスのとれたバイナリツリーはありません。しかし、あなたのコメントからすると、他のオプションがありそうです。
-
に対して、リストの代わりに BST を使いたいと言っていますね。
O(log n)
の検索に使用します。もし検索が必要なだけで、データがすでにソートされているのであればbisect
モジュールはリストのためのバイナリ検索アルゴリズムを提供します。 - Mike DeSimone はセットとディクツを推奨し、あなたはなぜリストがアルゴリズム的に遅すぎるのかを説明しました。セットとディクツはハッシュテーブルとして実装されており、O(1)ルックアップが可能です。Pythonのほとんどの問題に対する解決策は、本当に"use a dict"です。
どちらの解決策もうまくいかない場合は、サードパーティのモジュールに行くか、自分で実装するしかないでしょう。
関連
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pythonにはソートされたリストがありますか?
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?