QUICK REVIEW
[論文レビュー] bsort: A theoretically efficient non-comparison-based sorting algorithm for integer and floating-point numbers
Benjamín Guzmán|arXiv (Cornell University)|Mar 9, 2026
Algorithms and Data Compression被引用数 0
ひとこと要約
bsortは、符号付き/符号なし整数および浮動小数点値に対するインプレース・非比較ベースのソーターで、O(nw) 時間および O(w) 空間を用い、統一された binary-quickSort風のビット分割アプローチを採用します。小さな語数における理論的利点を示し、ハードウェア考慮を含む実証分析を提供します。
ABSTRACT
This paper presents bsort, a non-comparison-based sorting algorithm for signed and unsigned integers, and floating-point values. The algorithm unifies these cases through an approach derived from binary quicksort, achieving $O(wn)$ runtime asymptotic behavior and $O(w)$ auxiliary space, where $w$ is the element word size. This algorithm is highly efficient for data types with small word sizes, where empirical analysis exhibits performance competitive with highly optimized hybrid algorithms from popular libraries.
研究の動機と目的
- 整数および浮動小数データの統一的な非比較ベースのソータを動機づける。
- ビットマスクで分割し全てのsビットを処理する binary-quickSort ベースのコアを提示する。
- 符号付き整数とIEEE-754浮動小数点表現への方法の適用方法を示す。
- 正しさの形式的証明を提供し、時間/空間計算量と実践的な性能を分析する。
- 将来の最適化を導くための実証結果とアーキテクチャ上のボトルネックを論じる。
提案手法
- 統一的なインプレースビット分割手続きへ、binary quicksortコアを適用する。
- singlePassBSortを定義し、ビットマスクによる範囲分割を昇順/降順の指針とともに行う。
- 符号付き整数の処理を2段階で行い、初回パスで初期ソート方向を反転させて分割を正しく保つ。
- 浮動小数点値は三段階の階層(符号、指数、仮数)でソートを行い、正しさを証明する。
- 符号付き整数および浮動小数点表現に対する正しさの詳細な証明(定理2および3)。
- bsortをinturosort、spreadsort、ska_sortと比較する実証ベンチマークを64ビット環境で提供する。

実験結果
リサーチクエスチョン
- RQ1単一の統一的でインプレース・非比較ベースアルゴリズムが、符号付き/符号なし整数と浮動小数点値を正しくソートできるか。
- RQ2語長 w および要素数 n の観点から、そのようなアルゴリズムの理論的時間および空間計算量はどうなるか。
- RQ3典型的な語長に対して、ハイブリッドな非比較ベースおよび比較ベースのソートと比較して、アルゴリズムは経験的にどのように性能を示すか。
- RQ4実際の性能に影響を与えるアーキテクチャ上のボトルネックは何か、今後の最適化はそれらをどう改善できるか。
主な発見
| Algorithm | Runtime | Memory | In-place | Comp. |
|---|---|---|---|---|
| Introsort∗ | O(n log n) | O(log n) | Yes | Yes |
| Spreadsort∗ | O(n(k/s + s)) | O(n) | No | No |
| ska_sort∗ | O(n w) | O(d · k) | Yes | No |
| Quicksort | O(n log n) | O(log n) | Yes | Yes |
| bsort | O(n w) | O(w) | Yes | No |
- bsor t は O(nw) 時間で O(w) の補助空間を使用する。
- 小さな語長に対して、経験的には spreadsort や ska_sort のような最適化されたハイブリッドと競合する結果を示す。
- アルゴリズムはインプレースで、比較なしのビット分割を用いるが、再帰の深さは語長 w に等しい。
- 符号付き整数は初期パスの方向を反転させて正しい分割を維持する必要がある。
- 浮動小数点ソートは符号 → 指数 → 仮数の階層を用い、数値順序を保持する(証明あり)。
- ベンチマーク結果は n に対して線形スケーリングを示し、より大きな語長で性能を制限する分岐、キャッシュ、スタック関連のボトルネックを明らかにする。

より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。