ホームページ >バックエンド開発 >PHPチュートリアル >PHP はバケットソートアルゴリズムを実装します

PHP はバケットソートアルゴリズムを実装します

jacklove
jackloveオリジナル
2018-05-22 17:39:151733ブラウズ

この記事では、PHP でバケット並べ替えアルゴリズムを実装する方法について説明します。

簡単な意味でのバケットソート:

バケットソートの原理は、データ範囲がNの場合、まずN+1個のバケットをコンテナとして配置することです。

次に、テストデータ (ソート対象のデータ) をループし、対応するバケットに入れます。データは範囲 N 内にある必要があります。

最後に、バケット内の要素をループして出力し、大から小、または小から大の順に並べ替えます。

例:

値の範囲が 10 である場合、長さ 11 の配列 $arr を定義する必要があります。そして、すべての要素の値を 0 にします

次に、必要な配列をループします。 5,3 ,5,2,8 のようにソートされます (ここでの値の範囲は実際には 8 のみです)

$arr バケット配列の要素に順番に対応します。つまり、5 の場合は $arr を作成します。 [5]++.

このとき $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1

次に $arr の配列をループします。 $arr[2]=1、出力要素 2 に 1 回ループ、$arr[5]=2、ループは 5 を 2 回出力します

結果の出力は 2 3 5 5 8 です

ループ値が大きい場合大きいものから小さいものへソートされます

// デフォルトの配列を設定します。デフォルト値は 0;

$arr = array();
 
for ($i = 0; $i <= 10; $i++) {
 
$arr[$i] = 0;
 
}
 
//设置测试的五个数据
 
$arr1 = array(5, 3, 5, 2, 8);
 
//根据数据 对默认数组的对应元素进行+1; J的取值范围不能等于$arr1数组长度
 
for ($j = 0; $j < count($arr1); $j++) {
 
//这边给相应的数组值+1
 
$arr[$arr1[$j]]++;
 
}
 
//开始循环输出 默认数组 $arr 里面相应的值
 
for ($k = 0; $k <= 10; $k++) {
 
for ($l=1; $l <=$arr[$k]; $l++) {
 
echo "$k ";
 
}
 
}
 
?>

この記事では、PHP でバケットのソート アルゴリズムを実装する方法について説明します。 PHP 中国語 Web サイトに注意してください。

関連する推奨事項:

thinkPHP5 フレームワーク データベースのコヒーレント操作:cache() の使用法の詳細

PHP インターフェースの多重継承と多重継承効果を達成するための tarits チュートリアルの詳細

PHP の数を取得する方法特定の年の週の開始日と終了日のチュートリアル

以上がPHP はバケットソートアルゴリズムを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。