Ropeというやつがあるのか。
ただ、Ropeは検索を二分探索木で素早くする探り当てる都合上、ノードを直接いじることができない。
そこでノードを削除したいときはぶった切ってつなぐことをやるようだ。
この発想はなかった。
https://github.com/FlatlinerDOA/Rope
なお、時間計算量は追加がO(1)で、要素の取得がO(lon N)なので、GapBufferよりは遅い。
ただ、RopeはGCにとってはメモリー管理がやりやすいというメリットがあり、ユーザー目線だと巨大なファイルを読み込んでもメモリー解放に時間がかからないという利点がある。
Permalink | 記事への反応(1) | 17:12
ツイートシェア
試しに98文字の追加と3文字削除して3文字挿入、3文字削除して4文字挿入をそれぞれ10万行繰り返してみた。 ADD:1984ms REPLACE(3 char):8942ms REPLACE(3 char to 4 char):23792ms 最大メモ...