[[Treap]]

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programming_algorithm:data_structure:treap [2019/10/18] – [__slots__] ikatakosprogramming_algorithm:data_structure:balancing_binary_search_tree:treap [2019/11/28] (現在) – ↷ programming_algorithm:data_structure:treap から programming_algorithm:data_structure:balancing_binary_search_tree:treap へページを移動しました。 ikatakos
行 11: 行 11:
 多数のリスト参照が積もり積もって遅くなる。 多数のリスト参照が積もり積もって遅くなる。
  
-Treapは比較的、参照すべきノードが少ないので、若干有利となる。+Treapは比較的、参照すべきノードが少ないので、その意味では若干有利となる可能性がある。
  
 ただし、木の平衡がきちんとは保たれず効率性は落ちるので、トレードオフ。 ただし、木の平衡がきちんとは保たれず効率性は落ちるので、トレードオフ。
行 20: 行 20:
     * 基本的にこれ見ればわかる     * 基本的にこれ見ればわかる
  
-=====高速化=====+=====Pythonでの高速化=====
  
 なんかいろんな要因が絡みそうで、個別の検証は行っていない。 なんかいろんな要因が絡みそうで、個別の検証は行っていない。
行 77: 行 77:
 ただ、特にPyPyで実行することを考えると、データ構造をなるべく型を統一した単純な形にすることで、型推論が働きやすくなり、高速になるといわれている。 ただ、特にPyPyで実行することを考えると、データ構造をなるべく型を統一した単純な形にすることで、型推論が働きやすくなり、高速になるといわれている。
 (この辺、どういったデータ構造ならいいのかいまいちわかっていないが) (この辺、どういったデータ構造ならいいのかいまいちわかっていないが)
 +
 +  * [[https://pypy.org/performance.html|PyPy - Performance]]
 +
 +> Keep it simple
 +
 +> Simple is better than complex. The PyPy JIT is not very smart; the simpler your code is the better it will run. Here again, though, you face a tradeoff: you may need to pay with more algorithmic complexity in order to avoid brute-force operations that are O(n**2) or worse.
 +
 +> Write plain-vanilla code in plain-vanilla ways. The PyPy JIT has many productions that optimize a common usage pattern against an uncommon usage pattern.
 +
 +
  
 よって、このような表現にすることで、若干の高速化が期待できる。 よって、このような表現にすることで、若干の高速化が期待できる。
行 91: 行 101:
 </sxh> </sxh>
  
-ただし、1つのノードの情報を縦断的に確認するのはすげーやりづらいので、視認性は下がる。 +ただし、クラスによる実装では ''node.left.data = xx''「ノードの左の子の値はxx」と、日本語と考える順番が一致するので読みやすいが、 
- +共通indexによる実装では ''data[left[node]] = xx'' なり、若干読みにくい。
-また、クラスによる実装では ''node.left.data = xx''「ノードの左の子の値はxx」と、日本語と考える順番が一致するので読みやすいが、 +
-共通indexによる実装では ''data[left[node]] = xx''「data of left of node is xx」みたいになり、若干読みにくい。+
  
 ===末端ノード=== ===末端ノード===
programming_algorithm/data_structure/balancing_binary_search_tree/treap.txt · 最終更新: 2019/11/28 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0