2009年2月24日のブックマーク (2件)

  • ListViewの仮想表示モード その1 - SATOXのシテオク日記

    いやね、たいした話ではないのですが、ListView(.NET/C#)のVirtualMode(仮想表示)を使ってみたというネタ。 ListViewにはListViewItemと呼ばれる項目を表示できるわけですが、そのアイテムが大量にある場合、その登録に時間が掛かるわけです。ちょっとぐらい待ってもいいと思うかもしれませんが、よりよい操作感を求めるならばこの待ち時間はなくした方がいいのです。 で、以下に示すのが既にListViewItemがnewされている条件で、VirtualModeとAddRangeで一度に登録した場合の違いを試すC#のプログラム。 デザインソースは割愛されているので適宜作成して貼り付けて下さい。登場人物としては、次の通り。 ListView listViewVirtual; ListView listViewNormal; CheckBox checkBoxVirtua

    ListViewの仮想表示モード その1 - SATOXのシテオク日記
    halxxxx
    halxxxx 2009/02/24
    listview virtualmode
  • Spaghetti Source - 複数パターン検索 (Aho-Corasick)

    説明 複数のパターン文字列からなる集合と長い文字列が与えられる.長い文字列に対してマッチするパターン文字列をすべて求めるアルゴリズムが Aho Corasick である.これは複数パターン文字列をあらかじめ trie に変換してから KMP を実行し,パターンマッチング・オートマトンを構成していることになる. 詳しくは適当な成書や http://www.cs.uku.fi/~kilpelai/BSA05/lectures/slides04.pdf などを参考のこと. 計算量 構築 O(m). 検索 O(n + m). ただし m はパターンの文字列長の総和,n は検索テキスト長. 使い方 struct PMA; を適宜設定のこと. buildPMA(char *p[], int m) 0 ... m-1 の複数の検索パターンから,パターンマッチング・オートマトンを構築する. match(c