文字列ソーティングの速度比較にいくつかのアルゴリズムで Suffix Array を構築してみた。 対象データは 30 MBytes ほどの英文新聞記事データで、gcc 4.0 で -O2 でコンパイル。結果はこんな感じ。 algorithm time[sec] quicksort 97.33 multikey quicksort 63.66 merge sort 73.62 std::sort 90.30 std::stable_sort 76.61 む。クイックソートよりマージソートの方が速いし。マージのコストはたいしたことないのかな。 ちなみに、Suffix Array の構築に特化したアルゴリズムだとこんな感じ。 algoritm time[sec] two-stage sort 33.50 improved two-stage sort 17.30 skew algorithm