ベンチマーク: 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 のアルゴリズムをご存知ですか?

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

ブログ    

推薦する

...

...

AIは実は人々の思考や視野を制限している

[[252987]] AIは徐々に成熟し、さまざまな産業に導入され、人々の生活を微妙に変えています。...

2022 年のヘルスケアと医薬品における AI の予測

市場の一流専門家によると、AI は病院の運営、新薬の発見、超音波検査を改善する可能性を秘めています。...

...

AI作曲家の出現により、人類はどこへ向かうべきでしょうか?

AIを使って音楽を作曲した場合、AIが作曲した音楽と人間が作曲した音楽を区別できますか?今日はその...

AIにソフトウェア開発を教える: IBMオープンソースデータセットProject CodeNetには1,400万のコード例が含まれている

[[399492]] Big Blue は、AI ベースのプログラミング ツール向けの充実したトレー...

...

幼稚園のAI教材を公開!プログラミング学習は幼稚園から始まる

AIの学習は幼稚園から始まる最近、インターネット上で「人工知能実験教科書」の写真が流通している。この...

機械学習アルゴリズムを使用して「実験室地震」を予測するにはどうすればよいでしょうか?

[[186458]]機械学習アルゴリズムが「実験室の地震」を予測できるという事実は、間違いなく画期...

2022 年のソフトウェア開発に関する 5 つの予測

[[435157]] [51CTO.com クイック翻訳]すべての企業がソフトウェア企業になりつつあ...

...

...

Amazon のニューラル ネットワークに関する書籍トップ 10

近年、データサイエンスとデータマイニングの人気が高まっています。ニューラルネットワークとディープラー...

歩行者の軌道予測に効果的な方法と共通基本方法は何ですか?トップカンファレンスの論文を共有しましょう!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...