Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Kita Boleh Menggabungkan Dua Tatasusunan Rata Secara Cekap Bergantian?

Bagaimanakah Kita Boleh Menggabungkan Dua Tatasusunan Rata Secara Cekap Bergantian?

Barbara Streisand
Lepaskan: 2024-12-19 16:47:16
asal
191 orang telah melayarinya

How Can We Efficiently Merge Two Flat Arrays Alternately?

Menggabungkan Tatasusunan Rata Bergantian

Memandangkan dua tatasusunan rata yang sama saiz, kami berusaha untuk menggabungkannya secara bergilir-gilir, mengekalkan susunan unsur dalam setiap tatasusunan. Output yang diingini menyerupai:

array(0, 3, 1, 4, 2, 5);
Salin selepas log masuk

Sementara pendekatan kekerasan seperti berikut menyelesaikan tugas:

for (var $i = 0; $i < count($a1); $i++) {
    newArray[] = $a1[$i];
    newArray[] = $b1[$i];
}
Salin selepas log masuk

Kecekapan menjadi penting apabila melakukan operasi ini beribu-ribu kali.

Penyelesaian Asli

Penyelesaian asli yang dicadangkan melibatkan gelung tersuai yang berulang pada tatasusunan dan menambahkan elemennya secara bergilir-gilir pada tatasusunan baharu:

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $b1[$i];
}
Salin selepas log masuk

Teknik ini terbukti lebih cekap, terutamanya apabila diulang berkali-kali, seperti yang ditunjukkan oleh ujian penanda aras di bawah:

$a1 = array(0,1,2);
$a2 = array(3,4,5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++)
{
    $newArray = array();
    $count = count($a1);
    for ($i = 0; $i < $count; $i++)
    {
        $newArray[] = $a1[$i];
        $newArray[] = $b1[$i];
    }
}
echo  round(microtime(TRUE) - $start, 2); # 0.6

$a1 = array(0,1,2);
$a2 = array(3,4,5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++)
{
    $newArray = array();
    for ($i = 0; $i < count($a1); $i++)
    {
        $newArray[] = $a1[$i];
        $newArray[] = $a2[$i];
    }
}
echo  round(microtime(TRUE) - $start, 2); # 0.85
Salin selepas log masuk

Oleh itu, pra-pengiraan saiz tatasusunan memberikan lebih kurang 25% peningkatan prestasi, menjadikannya penyelesaian optimum untuk skala besar operasi.

Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Menggabungkan Dua Tatasusunan Rata Secara Cekap Bergantian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan