スペース効率が非常に高い、珍しい連想配列の実装を作成しようとしています。次のすべてを満たす並べ替えアルゴリズムが必要です。
- 安定(キーが等しい要素の相対的な順序は変更されません。)
- インプレースまたはほぼインプレース(O(log n)スタックは問題ありませんが、O(n)スペースの使用またはヒープの割り当てはありません。
- O(n log n)時間計算量。
また、並べ替えられるデータ構造は配列であることに注意してください。
これら3つのいずれかに一致する基本的なアルゴリズムがあることは簡単にわかります(挿入ソートは1と2に一致し、マージソートは1と3に一致し、ヒープソートは2と3に一致します)が、私は一生の間、それを見つけることができません。これらの3つの基準すべてに一致します。