Array Bucket Sort ist ein externer Sortieralgorithmus, der sich für die Verarbeitung großer Datenmengen eignet. Es verteilt die Daten in Container, sogenannte „Buckets“, sortiert dann jeden Bucket einzeln und führt die Buckets schließlich zu einer geordneten Liste zusammen.
PHP Array Bucket Sort: Große Datenmengen schnell und effizient verarbeiten
Array Bucket Sort ist ein externer Sortieralgorithmus, der sich für die Verarbeitung großer Datenmengen eignet. Es funktioniert, indem es Datenelemente in mehrere Container, sogenannte „Buckets“, verteilt und dann jeden Bucket einzeln sortiert. Abschließend werden die Elemente in den Buckets zu einer geordneten Liste zusammengeführt.
Algorithmusprinzip
Code-Implementierung
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; }
Praktischer Fall
Angenommen, wir haben einen Datensatz mit 100.000 Zahlen. Mit dem Array-Bucket-Sortieralgorithmus können wir es schnell und effizient sortieren.
$data = array_rand(range(1, 100000), 100000); // 生成一个随机数据集 $bucketCount = 10; // 选择 10 个桶 $startTime = microtime(true); // 开始计时 $sortedData = bucketSort($data, $bucketCount); $endTime = microtime(true); // 结束计时 echo "排序时间:" . ($endTime - $startTime) . " 秒";
Ausgabe:
排序时间:0.24374198913574 秒
Wie Sie sehen können, dauerte die Array-Bucket-Sortierung nur etwa 0,2 Sekunden, um den Datensatz zu sortieren. Dies ist bei großen Datenmengen sehr effizient.
Das obige ist der detaillierte Inhalt vonPHP-Array-Bucket-Sortierung: Verarbeiten Sie große Datenmengen schnell und effizient. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!