配列バケット ソートは、大量のデータの処理に適した外部ソート アルゴリズムです。データを「バケット」と呼ばれるコンテナに分散し、各バケットを個別に並べ替えて、最後にバケットを順序付きリストにマージします。
PHP 配列バケット ソート: 大規模なデータ セットを迅速かつ効率的に処理します。
配列バケット ソートは、適切な外部ソート アルゴリズムです。大量のデータを処理するため。これは、データ要素を「バケット」と呼ばれる複数のコンテナーに分散し、各バケットを個別に並べ替えることによって機能します。最後に、バケット内の要素が順序付きリストにマージされます。
アルゴリズム原理
コードの実装
function bucketSort(array $data, int $bucketCount): array { // 创建桶 $buckets = array_fill(0, $bucketCount, []); // 分配数据到桶 foreach ($data as $element) { $bucketIndex = floor(($element / max($data)) * ($bucketCount - 1)); $buckets[$bucketIndex][] = $element; } // 对每个桶排序 foreach ($buckets as &$bucket) { sort($bucket); } // 合并桶 $result = []; foreach ($buckets as $bucket) { $result = array_merge($result, $bucket); } return $result; }
実際のケース
100,000 個の数値を含むデータ セットがあるとします。配列バケットソートアルゴリズムを使用して、迅速かつ効率的にソートできます。
$data = array_rand(range(1, 100000), 100000); // 生成一个随机数据集 $bucketCount = 10; // 选择 10 个桶 $startTime = microtime(true); // 开始计时 $sortedData = bucketSort($data, $bucketCount); $endTime = microtime(true); // 结束计时 echo "排序时间:" . ($endTime - $startTime) . " 秒";
出力:
排序时间:0.24374198913574 秒
ご覧のとおり、配列バケットの並べ替えではデータセットの並べ替えにわずか約 0.2 秒しかかかりませんでした。これは、大規模なデータ セットの場合に非常に効率的です。
以上がPHP 配列バケットソート: 大規模なデータセットを迅速かつ効率的に処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。