たくさん学びました!世界で最も遅いソートアルゴリズム!

たくさん学びました!世界で最も遅いソートアルゴリズム!

今日は、世界で最も遅いソートアルゴリズムである Bogo ソートについてお話ししたいと思います。

では、早速擬似コードを見てみましょう。

  1. int bogo_sort(int& arr[], int n){
  2. while( false == is_sorted(arr[n])){
  3. ランダムシャッフル(arr[n]);
  4. }
  5. 0を返します。
  6. }

このゲームがモンキーソーティングと呼ばれる理由は、猿がキーボードをランダムに長く叩くと、シェイクスピアの詩を入力できるという喩えから来ています。

疑似コードを見ると、中心となる考え方が次のとおりであることが簡単にわかります。

(1)ソートする配列が順序どおりであるかどうかを判定する。順序どおりであれば、完了したソートを返す。

(2)配列が乱れている場合は、配列をランダムにシャッフルする。

(3)(1)を繰り返す。

実行時間が十分に長く、ランダム回数が十分に長い限り、常にソートされた結果が得られます。これは世界で最も遅いソートアルゴリズムとして知られています。

それで、質問は、このソートの用途は何なのかということです。

私が思いつくのは、大学のアルゴリズムの授業で時間計算量の導出演習をすること、就職面接で時間計算量の計算を問われること、あるいは自分の知性を誇示するための話題くらいです。それ以外は、何の役にも立たないように思えます。

このソートアルゴリズムの時間計算量はどれくらいですか?

簡単に分析してみましょう。

n 個の要素がランダムにシャッフルされた n! の組み合わせがあります。

  • ソートが成功する確率は p1 = 1/n! であり、ソートが失敗する確率は p2 = 1-p1 です。
  • 2 回のソートが成功する確率は p2*p1 です。ナレーション: 1 回目は失敗し、2 回目は成功しました。
  • 3 回のソートが成功する確率は p2^2*p1 です。ナレーション: 最初の 2 回は失敗し、3 回目は成功しました。
  • k 回のソートが成功する確率は p2^(k-1)*p1 です。ナレーション: 最初の k-1 回は失敗し、k 回目は成功しました。

したがって、ソートが成功すると予想される平均数は次のようになります。

E(X) = 1 回 * 1 回の成功の確率 + 2 回 * 2 回の成功の確率 + 3 回 * 3 回の成功の確率 + ... + k 回 * k 回の成功の確率 + ...

今すぐ:

最後に、大学で学んだ無限級数の数学的知識に基づくと、その時間計算量は O(n*n!) であり、階乗レベルのアルゴリズムであることが「簡単に」わかります。

[この記事は51CTOコラムニスト「58 Shen Jian」によるオリジナル記事です。転載については原作者までお問い合わせください。]

この著者の他の記事を読むにはここをクリックしてください

<<:  ロボットは「赤ちゃんを作る」こともできる:世界初の生きたロボットが生命の新たな繁殖方法を生み出す

>>:  人気の説明: キャッシュ、キャッシュ アルゴリズム、キャッシュ フレームワークの概要

ブログ    
ブログ    
ブログ    

推薦する

Baichuan Intelligence が数千億のパラメータを持つ大規模モデルをリリース、その中国の能力は GPT-4 を上回る!

制作:51CTO テクノロジースタック(WeChat ID:blog) 「今年中にChatGPTのレ...

AIがまだ人間を超えられない9つの分野

人工知能技術の急速な発展により、画像認識や音声認識など多くの分野で大きな進歩を遂げ、一部の分野では人...

GPU 価格の急激な下落はチップ不足が終わった兆候でしょうか?

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

基本に立ち返る: 一歩先を行くために読むべき 5 つのデータ サイエンス論文

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

PaddlePaddle と TensorFlow の比較分析

この記事では主に、フレームワークの概要、システム アーキテクチャ、プログラミング モデル、分散アーキ...

猿人歩行からAIまで:三次元戦略で一人ひとりに寄り添う「真のセキュリティ」

[[420527]]有名なドイツの社会学者ウルリッヒ・ベックはかつてこう言いました。「近代化の過程...

史上最も高いガンダムロボットが横浜港で公開される。高さ18メートルで歩行も可能

2月7日、横浜港で今年10月から1年間にわたり、歩行ガンダムロボットの大規模競技会が開催されることが...

Python で分類と回帰を組み合わせたニューラル ネットワーク モデル

[[406559]] Python 中国語コミュニティ (ID: python-china)一部の予...

具現化された知能の新時代! VLAは、UIナビゲーションとロボット操作を備えた最強の基本モデルMagmaを歓迎します

既存の大規模言語モデル、画像生成モデルなどは、少数のモーダルデータに対してのみ動作し、人間のように物...

...

AutoML は人間に取って代わるのでしょうか? 4 人のエンジニアと 2 つのデータ セットがそれを打ち負かしました。

ここ数年、ますます多くのテクノロジー大手が独自の AutoML サービスを立ち上げており、こうしたサ...

...

人工知能とソフトウェアアーキテクチャ

[[192443]] AlphaGoの登場により、2016年は人工知能元年とも言えるでしょう。蘇州で...

ついに誰かがROSロボットオペレーティングシステムをわかりやすく説明しました

この記事はWeChatの公開アカウント「Big Data DT」から転載したもので、著者はZhang...