ビーズソート


今日は、11年前に発明されたばかりですが、3千年の歴史を持つ計数装置が「プロトタイプ」として機能する素晴らしいアルゴリズムに注目します。


著者



2002年、ニュージーランドのオークランド大学の3人の数学者、ジョシュアJ.アルラナンダム、 クリスチャンS.カリュード 、マイケルJ.ダイニーンによって選別が行われました。 科学者の活動分野は、離散数学、数論、量子コンピューティング、情報理論、組み合わせアルゴリズムです。

私は、3人のうちどれが元のアイデアを所有しているかは知りません。 おそらく、計算数学の歴史を教えているカルード。 誰もが知っているように、ヨーロッパのアカウントの祖先はそろばんであり、 そろばんはバビロンからエジプトに、そこからギリシャに、そこからローマに、ヨーロッパ全体に移住しました。 アンティークの「計算機」の外観と動作原理は、この「単純な」ソートの動作を連想させるため、「そろばんソート」とも呼ばれます。

アルゴリズム


自然数のセットをソートするとします。 互いの下に、ボールの対応する数の水平列の形で各番号をレイアウトします。 それでは、これらすべてのボールのグループを水平ではなく垂直に見てみましょう。 ボールを完全に押し下げます。 再び、水平に切り替えて、各列のビーズを数えます。 注文された番号の初期セットを取得しました。

実装


30以上のプログラミング言語でのビーズの並べ替えについては、 こちらをご覧ください 。 視覚的にはアルゴリズムはどこにも単純ではありませんが、ソフトウェア実装の観点からすると、これは非常に重要なソートです。

縮退ケース


これは逆順の配列です。 ボールの最大可能数は、最高点から崩壊する必要があります。

限られた適用性


この方法は主に自然数に適用できます

整数をソートできますが、これはより複雑です-負の数は正の数とは別に処理する必要があります。

整数に減らされる前に、ソートと小数を妨げるものは何もありません(たとえば、すべてを10 kで乗算し、ソートしてから10 kで除算します)。

もちろん、各行が正の整数として表される場合、行もこの方法でソートできます。 しかし、なぜですか?

時間の複雑さ


アルゴリズムを考慮するコンテキストに応じて、ソートにはすでに4つあります。


O(1)


抽象的なケース、真空中の球状ビーズの並べ替え 。 すべての移動するボールが同時に移動し、所定の位置に落ちると想像した場合。 これは、このソートでは実現不可能な複雑さです-アルゴリズムの理論でも実際でもありません。

O(√n)


ビーズが油性の良い編み針をすべる物理モデルの推定値。 自由落下時間は、最大高さの平方根に比例します。これは、 nの倍数です。

O(n)


まだその場所に到達していないボールは、1回の反復で一緒に1つの位置を移動します。 このソート方法を実装する物理デバイス、アナログまたはデジタルのハードウェア実装の場合、この複雑さについて話すのが適切です。


O(S)


Sは配列の要素の合計です。 各ボールは個別に動き、ボールのグループを同時に転がさないでください。 プログラミング言語で実装するための適切な複雑性評価。

記憶困難


希望するものを残します。 ビードソートは、贅沢な記録保持者です。追加のメモリのコストは、アレイ自体と平均O(n 2を保存するコストよりも何倍も高くなります。

物理学



ボールの有無は、一連の電気抵抗器を通過するアナログ電圧として解釈できます。 ボールがそれに沿って移動するロッドは、 電気抵抗器に似ており、電圧は上から下に向かって増加します。

電気用語の舌で縛られた使用のために蹴らないでください、私は物理学の学校でプラス 4とマイナスのトリプルを持っていました。

このpdfドキュメントの詳細については、静電気の専門家を派遣します

実際に


ビーズソートは一種のカウントソートです。 各垂直トラックのボールの数は、垂直のシリアル番号以上の配列内の要素の数です。

アルゴリズムの特徴


役職ビーズソート(ビーズソート); そろばんソート
著者ジョシュアJ.アルラナンダム、クリスチャンS.カルード、マイケルJ.ディニン
発行年2002
クラス分布ソート
持続可能性持続可能な
比較比較なし
時間の複雑さO(1)O(√n)O(n)O(S)
記憶困難O(n 2

参照資料

オークランド大学のWebサイトでのビーズの選別
アルゴリズムに関する著者のドキュメント、pdf
さまざまなPLでの実装
英語版ウィキペディアのビーズの並べ替え

著者のホームページ:

ジョシュア・J・アルラナンダム
クリスチャン・S・カルド
マイケル・J・ディニン

Source: https://habr.com/ru/post/J198962/


All Articles