Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

2025-01-09

Ropeというやつがあるのか。

ただ、Rope検索を二分探索木で素早くする探り当てる都合上、ノードを直接いじることができない。

そこでノードを削除したいときはぶった切ってつなぐことをやるようだ。

この発想はなかった。

https://github.com/FlatlinerDOA/Rope

なお、時間計算量は追加がO(1)で、要素の取得がO(lon N)なので、GapBufferよりは遅い。

ただ、RopeGCにとってはメモリー管理がやりやすいというメリットがあり、ユーザー目線だと巨大なファイルを読み込んでもメモリー解放時間がかからないという利点がある。

  • 試しに98文字の追加と3文字削除して3文字挿入、3文字削除して4文字挿入をそれぞれ10万行繰り返してみた。 ADD:1984ms REPLACE(3 char):8942ms REPLACE(3 char to 4 char):23792ms 最大メモ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん