Skip to main content
QUICK REVIEW

[論文レビュー] Sorting distinct integer keys using in-place associative sort

A. Emre Cetin|arXiv (Cornell University)|Sep 10, 2012
Algorithms and Data Compression参考文献 11被引用数 3
ひとこと要約

本稿では、m = O(n log n) の条件下で最適な O(n) 時間計算量を達成する、一意な整数キーのインプレース連想ソートアルゴリズムを提案する。m はキー範囲を表す。ソートを認知神経科学的記憶プロセス(練習、記憶、想起)に類似させることで、定数の追加記憶領域を用い、バケットソートやカウンティングソートといった従来の分散ソートよりも記憶効率が良く、実用的な範囲では線形時間性能を維持する。

ABSTRACT

In-place associative integer sorting technique was proposed for integer lists which requires only constant amount of additional memory replacing bucket sort, distribution counting sort and address calculation sort family of algorithms. The technique was explained by the analogy with the three main stages in the formation and retrieval of memory in cognitive neuroscience which are (i) practicing, (ii) storing and (iii) retrieval. In this study, the technique is specialized with two variants one for read-only integer keys and the other for modifiable integers. Hence, a novel algorithm is obtained that does not require additional memory other than a constant amount and sorts faster than all no matter how large is the list provided that m = O (n logn) where m is the range and n is the number of keys (or integers).

研究の動機と目的

  • バケットソートやカウンティングソートのような従来の分散ソートが示す高いメモリオーバーヘッドを回避するインプレース整数ソートアルゴリズムの開発。
  • 記憶の形成に関する認知神経科学的原則(練習、記憶、想起)をソートプロセスに適用し、効率的なメモリ内操作を可能にする。
  • キー範囲 m が m = O(n log n) を満たす場合に、大規模なリストに対して最適な時間計算量 O(n) を達成すること。
  • 読み取り専用キー用と変更可能な整数用の2つのバリアントを提供し、それぞれ異なるデータアクセスパターンに最適化すること。
  • アルゴリズムが定数の追加記憶領域を用いながら線形時間性能を維持することを示し、大規模なメモリ内ソートに適していること。

提案手法

  • アルゴリズムはソートを三段階の認知的プロセスに類似させる:練習(一意なキーを想像上の部分空間にマッピング)、記憶(相対順序を保ったままノードをクラスタリング)、想起(符号化された手がかりを用いて元の順序を再構築)。
  • 整数を事前に定義された区間から想像上の線形部分空間にマッピングする単調な全単射ハッシュ関数を用い、インプレース操作を可能にする。
  • タグビットを用いて単語を「ノード」としてマークし、通常の整数とは区別する。これにより、「練習」段階で関連性を追跡し、重複数を数えることができる。
  • 「記憶」段階では、ノードの相対順序に従い、リスト空間内で体系的にクラスタリングを行う。位置情報はノードレコードまたは必要に応じて関連する空き整数に符号化される。
  • 「想起」段階では、各ノードのレコードまたは関連する空き整数が絶対的または相対的な位置を提供し、逆ハッシュ関数を用いて元のキーを再構築し、正しい順序に配置する。
  • 再帰処理は、配列の末尾からソート済み区間を拡張することで実装され、返されたカウント値を用いて次の拡張の開始位置を決定する。これにより、最終的なソート配列への正しい配置が保証される。

実験結果

リサーチクエスチョン

  • RQ1m = O(n log n) の条件下で、整数キーに対して O(n) 時間計算量と O(1) の追加記憶領域を満たすソートアルゴリズムは可能か?
  • RQ2認知神経科学的記憶形成の原則(練習、記憶、想起)をどのように応用し、効率的なインプレース整数ソートアルゴリズムを設計できるか?
  • RQ3m/n の比が変化する条件下で、読み取り専用と変更可能な整数バリアントの間で性能のトレードオフはどのように変化するか?
  • RQ4ノード配置中に空き整数が追い出される場合、アルゴリズムは安定性を保ち、あるいは不安定性をどのように処理するか?
  • RQ5一様分布および最悪ケースのキー分布下での、アルゴリズムの漸近的時間計算量は何か?

主な発見

  • 読み取り専用バリアントは、最悪ケースで O(n + m) 時間、一様分布キーでは平均的に O(m) 時間、最良ケースでは O(n) 時間で動作し、すべて O(1) の追加記憶領域を要する。
  • 変更可能なバリアントは、最悪ケースで O(n + m/(w − log n)) 時間、平均ケースで O(m/(w − log n)) 時間、最良ケースで O(n) 時間を達成し、同じ記憶効率を維持する。
  • m/n ≤ 10 の範囲では、ビット演算の回数が少ない読み取り専用バリアントがより効率的であるが、この比を超えると変更可能なバリアントが優位になる。
  • m = O(n log n) の条件下で、バケットソートやカウンティングソートよりも記憶効率が良く、時間性能も同等または上回る。
  • 「練習、記憶、想起」という認知的アナロジーにより、定数の追加メモリのみを用いて、入力配列を正しい順序の置換に体系的に変換できる。
  • ノードに関しては相対順序が安定であるが、等価な整数に関しては、ノード配置中に空き整数が追い出されるため、不安定である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。