遂に完成した...Grail Sort。 最悪計算量、O(Nlog(N))、インプレース(追加メモリが無い空間複雑度O(1))、安定ソート。 この三大条件をすべて満たしたのが、このGrail Sortだ。マージソートに似ているが、マージソートは多くのメモリを必要とする。配列からいくつかどうでもいいデータのキーと呼ばれるものをとってきて、それをメモリ代わりとして使い、この壁を突破した。実装がクソ難しかった。(というかこれは一部のデータしか対応してないけど...) さあ、ソートアルゴリズムの聖杯とよばれたGrail Sortを見よ。 使い方 STARTボタンでソートを始めます。データ数変更ボタンで並び替えるデータの数を変更します。ただし、あまりにも実装が難しすぎたため、データの数が16以下の自然数、もしくはそれ以上の平方数しか対応していません。本当にすみません.....処理速度の調整ボタンで一秒間に何回ソートの処理をするかを変更します。音の有無ボタンはその名の通り音の有無を変更します。
前提知識がない人は、もしかしたらこれを見ても「これ...何やってるの?」って思うかもしれません。 そりゃ...Grail Sortはソートアルゴリズムの中でも一番ムズイとまで呼ばれてるので... 名前の由来:Holy Grail(聖杯)。三条件を全部満たしたからソートアルゴリズムの聖杯と呼ばれ、この名前が付いた。