タグ

データ構造に関するt10471のブックマーク (2)

  • 2-3 フィンガーツリー - Wikipedia

    2-3フィンガーツリー(2-3 finger tree、または単にfinger tree)とは、列を表す永続データ構造の一種であり、償却定数時間で両端への追加・削除が可能であり、対数時間で連結・分割・挿入が可能である。また、分割演算を変更すると優先度付きキューや探索木などを実装できる。2006年にRalf HinzeとRoss Patersonが発表した[1][2]。 関数型プログラミング言語などで使われる。Haskellでは、containersパッケージ[3]に列に特化した実装のData.Sequence[4]が含まれ、列に限定しない汎用の実装もfingertreeパッケージ[5]として存在する。Scalaでは標準ライブラリには含まれていないが、scalaz[6]などのライブラリなどで実装されている。その他、様々なプログラミング言語で実装されている。 構造[編集] 2-3フィンガーツリ

    2-3 フィンガーツリー - Wikipedia
  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
  • 1