ベンチマーク: 14 のソートアルゴリズムと PHP 配列

ベンチマーク: 14 のソートアルゴリズムと PHP 配列

この記事では、PHP で記述されたソートアルゴリズムのテストについて紹介します。
ソートアルゴリズムは 14 種類あります。

  • クイックソート
  • カウントソート
  • コームソーティング
  • ヒープソート
  • マージソート
  • シェルソート
  • 選択ソート
  • 挿入ソート
  • ゴブリンソーティング
  • 複合バブルソート
  • カクテルの仕分け
  • バブルソート
  • 奇数偶数ソート
  • フラグを使用したバブルソート

アルゴリズムは、アルファベット順に並べ替えるのではなく、8,000 個の要素を並べ替える際の全体的な速度の降順で並べ替えられます。

使用される配列のサイズは次のとおりです。

  • 1
  • 100
  • 200
  • 400
  • 600
  • 800
  • 1000
  • 5000
  • 10000
  • 15000
  • 20000
  • 25000
  • 30000

各測定値は異なるサイズの配列を使用し、それがソート関数に渡されます。

  • 最初のケースでは、配列は (1, N) の間の値でランダムに埋められます。ここで、N はグループのサイズです。
  • 2 番目のケースでは、配列は (1, PHP_INT_MAX) の間の値でランダムに埋められます。ここで、PHP_INT_MAX は現在のシステムにおける INT 型の最大値で、私のシステムでは 2^63 または約 9.2233720368548E+18 です。

各テストは3回実行され、算術平均が算出されました。

1000 要素の配列

すべてのアルゴリズムは現在の配列サイズに基づいてソートされます。

30000要素の配列

この時点で、カウンティング ソート、クイック ソート、コーム ソート、ヒープ ソート、マージ ソートの 5 つの最速アルゴリズムがテストされます。

200,000 要素の配列

この時点で、カウンティング ソート、クイック ソート、コーム ソート、ヒープ ソート、マージ ソートの 5 つの最速アルゴリズムがテストされます。

2,000,000 要素の配列

2,000,000 要素を使用した最後のテストでは、カウント ソートとクイック ソートの 2 つのアルゴリズムのみがテストされました。

要約する

クイックソートは、その評判に値する優れたアルゴリズムです。カウントソートは、値の範囲が小さい場合には適切に機能しますが、その他のケースではメモリ不足のため対処が困難です。カクテルソートはランダムな値には適していません。バブルソートとそのバリエーションは実際のアプリケーションには適していません。

すべてのアルゴリズムのソースコード + 結果: https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing

組み込みのソート関数を使用するのは興味深い練習です。解釈された PHP でソート関数を記述することは、sort() で使用される C バリアントよりも高速になることは決してありません。

オリジナルリンク: ahwoobachairiesaas翻訳: Bole Online - hoikin-yiu

翻訳リンク: http://blog.jobbole.com/68774/

<<:  世界を支配するトップ 10 のアルゴリズムをご存知ですか?

>>:  物理学者は神の粒子を研究するためのアルゴリズムを開発するためにプログラマーを招待する

ブログ    

推薦する

顔認識カメラはあなたの顔を盗みますが、なぜ「精密マーケティング」に使われるのでしょうか?

今年3月15日にCCTVで暴露された事件は、オフラインのショッピング施設に入ったことのある人全員に衝...

MITの中国人博士課程学生がChatGPTをJupyterに移行し、自然言語プログラミングをワンストップソリューションに

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

人工知能は投資家に好まれているが、投資家は市場に参入する際には注意する必要がある

人工知能の分野で大きな影響力を持つ企業は、金融市場においても並外れた成長と強さを見せています。 AI...

AIは期待に応えられていない?これらの人為的ミスが発生した可能性がある

人工知能は、ほとんどのビジネス分野で必須のテクノロジーになりつつあります。顧客対応チャットボットとし...

Google: LLM は推論エラーを見つけることはできないが、修正することはできる

今年、AI分野では大規模言語モデル(LLM)が注目を浴びています。 LLM はさまざまな自然言語処理...

ネットユーザーたちは、顔認識技術の何が難しいのかと冗談を言っている。

今朝、ジャック・マーは自身の微博に「ドイツで開かれたCEBITカンファレンスの開幕式が終わったばかり...

...

機械学習と人工知能: 定義と重要性

[[258322]]機械学習は計算知能とも呼ばれ、近年いくつかの技術的障壁を突破し、ロボット工学、機...

人工知能が買い物をより簡単にする

[51CTO.comより] 中国共産党第19回全国代表大会で「インターネット、ビッグデータ、人工知能...

機械学習エンジニアとデータサイエンティストの違い

今日では、データ サイエンティストの仕事は非常に一般的になり、機械学習もその中に完全に含まれる可能性...

過去1年間、世界は人工知能の倫理について次のような考えを抱いてきた。

1月下旬に終了したCES 2019で、LGの社長兼最高技術責任者であるIP Park氏が、AIがど...

...

...