ホームページ  >  記事  >  バックエンド開発  >  テスト評価: 14 の並べ替えアルゴリズムと PHP 配列_PHP チュートリアル

テスト評価: 14 の並べ替えアルゴリズムと PHP 配列_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:54:03882ブラウズ

この記事では、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 つの最速アルゴリズムがテストされます。

200000 要素の配列

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

2,000,000 要素の配列

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

まとめ

クイックソートは当然の優れたアルゴリズムです。カウントソートは、値の範囲が狭い場合にはうまく機能します。そうでない場合は、メモリ不足に対処できません。カクテルの並べ替えは、ランダムな値に対しては不適切な選択です。バブル ソートとそのバリアントは実際のアプリケーションには適していません。

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

組み込みの並べ替え機能を使用するのは楽しい練習です。解釈された PHP でソート関数を作成する場合、C バージョンの sort() よりも高速になることはありません。

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/778654.html技術記事この記事では、PHP で書かれた並べ替えアルゴリズムのテストを紹介します。 以下は 14 のソート アルゴリズムです: クイック ソート カウンティング ソート コーム ソート ヒープ ソート マージ ソート ヒル ソート...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。