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

jacklove
リリース: 2023-03-27 14:56:02
オリジナル
1637 人が閲覧しました

この記事では、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!