データ構造とアルゴリズム総合at TECH
データ構造とアルゴリズム総合 - 暇つぶし2ch619:610
13/02/03 14:47:22.77
>>618
いや、だから、「ソートアルゴリズムを使えば O(n log n) でできる」と
>>610 に書いたんだが。

あと、結果のリストから同値があるものを探すのは今回は必要ないです。
あくまで目的(出力)は同値な要素が必ず隣同士にあるリスト。

>>617
たしかに O(n log n) よりもひとつ速いとなると O(n) しかないね。

ハッシュの方は試しに、要素の型を int に限定して、
std::unordered_set<int> を使ってやってみた。
残りのテンプレート引数はデフォルトで。
単純に、配列の要素を順に unordered_set に insert してから、
イテレータで順に取り出して元の配列に代入した。

配列の要素数は 10000000 個で、rand () % 3000 の値を入れた。
コンパイラは g++ (tdm64-1) 4.7.1 で、最適化オプションは O3。

qsort 関数は1秒で終わったが、ハッシュの方は15秒かかった。

話にならんかった。
やっぱ楽しないで、自分でハッシュ関数やアロケータを作って
テンプレート引数に入れるべきか・・・

俺の直感では単純なソートよりも条件は緩いはずなのに、
ソートと同程度のソートではないアルゴリズムが思いつかないのは意外だ。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch