Isihan baldi tatasusunan ialah algoritma pengisihan luaran yang sesuai untuk memproses sejumlah besar data. Ia mengedarkan data ke dalam bekas yang dipanggil "baldi", kemudian mengisih setiap baldi secara individu, dan akhirnya menggabungkan baldi ke dalam senarai tersusun.
Isih Baldi Tatasusunan PHP: Proses set data yang besar dengan cepat dan cekap
Isih Baldi Tatasusunan ialah algoritma pengisihan luaran yang sesuai untuk memproses sejumlah besar data. Ia berfungsi dengan mengedarkan elemen data ke dalam berbilang bekas yang dipanggil "baldi" dan kemudian mengisih setiap baldi secara individu. Akhir sekali, unsur-unsur dalam baldi digabungkan ke dalam senarai tersusun.
Prinsip algoritma
Pelaksanaan kod
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; }
Kes praktikal
Andaikan kita mempunyai set data yang mengandungi 100,000 nombor. Kita boleh menyusunnya dengan cepat dan cekap menggunakan algoritma isihan baldi tatasusunan.
$data = array_rand(range(1, 100000), 100000); // 生成一个随机数据集 $bucketCount = 10; // 选择 10 个桶 $startTime = microtime(true); // 开始计时 $sortedData = bucketSort($data, $bucketCount); $endTime = microtime(true); // 结束计时 echo "排序时间:" . ($endTime - $startTime) . " 秒";
Output:
排序时间:0.24374198913574 秒
Seperti yang anda lihat, isihan baldi tatasusunan hanya mengambil masa kira-kira 0.2 saat untuk mengisih set data. Ini sangat cekap untuk set data yang besar.
Atas ialah kandungan terperinci Isih baldi tatasusunan PHP: Memproses set data yang besar dengan cepat dan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!