効率と高速化

http://chasen.org/~taku/blog/archives/2005/09/post_812.html

人づてに聞いた話なのですが、はてなキーワードを実際の blog に付与する処理は、
巨大な正規表現で行っているそうです。
本当にはてな内部では正規表現を使っているのでしょうか?
 perl の 正規表現エンジンは NFA なので、単純に or でつなげると、
キーワードの個数に比例する計算量になり、スケーラビリティ上の問題があります。
実際に上記のサイトの API を使ってみましたが、かなり遅いです。

この手の問題は、情報処理の教科書に出てくる AC 法を使うのが高速です。
1600倍ぐらい高速になりました。TRIE 板が C++ ということを考えても充分高速だと思います。

COM将棋の場合、効率は、オーダリングや安全な枝刈り技術などで変わってくるでしょうけど
効率が同じだった場合は、高速化で大きな差が出る。
どっちも重要


http://chasen.org/~taku/blog/archives/2009/07/post_827.html

プログラマ・ソフトウェアエンジニアと呼ばれる人間には、 
2つのタイプがあるような気がしています。

「ハードウェア」プログラマ
O(n) の計算量でも、その定数項を気にする
専用ハード好き (地球シミュレータ, メーンフレーム)

「ソフトウェア」プログラマ
O(n^2) と O(n) は気にするけど、定数項は気にしない。
早期の最適化は避け、自明でわかりやすいコードを書く

 高速化というのはこの定数項ですかね(^^;


あなたはどっちでしょう?
GA将!さんは100%後者っぽいんですが、CPU好きなところは前者


ぶっちゃけると、O(n^2) と O(n)という概念を知っているプログラマおよびSEが
日本のIT界にどれだけいるでしょうか?w
どんなに優秀なITエンジニアでも、元文学部とか元経済学部の人は知らないと思う。
せっかく地力の高い人が戦術級の仕事をしていたらもったいない。