1. ホーム
  2. python

[解決済み] Pythonの標準ライブラリにバランス2分木のモジュールはありますか?

2023-04-07 17:34:03

質問

のためのモジュールはありますか? AVL ツリー または 赤黒い木 とか、Pythonの標準ライブラリにあるバランスの取れた二分木のようなものでしょうか?

どのように解決するのですか?

いいえ、stdlibにはバランスのとれたバイナリツリーはありません。しかし、あなたのコメントからすると、他のオプションがありそうです。

  • に対して、リストの代わりに BST を使いたいと言っていますね。 O(log n) の検索に使用します。もし検索が必要なだけで、データがすでにソートされているのであれば bisect モジュールはリストのためのバイナリ検索アルゴリズムを提供します。
  • Mike DeSimone はセットとディクツを推奨し、あなたはなぜリストがアルゴリズム的に遅すぎるのかを説明しました。セットとディクツはハッシュテーブルとして実装されており、O(1)ルックアップが可能です。Pythonのほとんどの問題に対する解決策は、本当に"use a dict"です。

どちらの解決策もうまくいかない場合は、サードパーティのモジュールに行くか、自分で実装するしかないでしょう。