やっぱりflash sortは最速だった!!!?

ゴメン、パラメータいろいろ弄っていたらflash sortが最速な場合もあった。
4M個(33554432byte)のdouble配列

flash sort / 1519317
flash sort call count = 0
std::sort / 5198115
comb sort / 12413939
fs:1519317
qs:5198115
cs:12413939

mを1にすると速度がメチャクチャ速くなった。それ以外はquick sortに勝てない
quick sort(クイックソート)と比べておよそ3.14倍だ。すっげぇ。
アレ…でもmを1にすると、中身がソートされていないようなんだけど… orz...
ゴメン!やっぱりflash sortは遅いわ・・・
いや、ちょっと待て…
まだ、いじっていないところがある…
THRESHOLDとCLASS_SIZEだ。
どれどれ…ちょっといじってみた。


const int THRESHOLD = 1024;
const CLASS_SIZE = THRESHOLD * 2;

data size33554432
flash sort / 4129224
flash sort call count = 0
std::sort / 5356294
comb sort / 12458397
fs:4129224
qs:5356294
cs:12458397

やっぱり速いやん!flash sort
でも、癖があるようだ…貪欲なアルゴリズムで判断する必要がありそうだ…。


次回に続く…。
http://d.hatena.ne.jp/studiokingyo/20060318