Rumah >pembangunan bahagian belakang >tutorial php >Analisis algoritma PHP: kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan

Analisis algoritma PHP: kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan

WBOY
WBOYasal
2024-03-02 08:39:04798semak imbas

Analisis algoritma PHP: kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan

Analisis Algoritma PHP: Kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan

Dalam proses membangunkan aplikasi PHP, kita sering menghadapi situasi di mana kita perlu mencari nombor yang hilang dalam tatasusunan. Keadaan ini sangat biasa dalam pemprosesan data dan reka bentuk algoritma, jadi kita perlu menguasai algoritma carian yang cekap untuk menyelesaikan masalah ini. Artikel ini akan memperkenalkan kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan, dan melampirkan contoh kod PHP tertentu.

Huraian Masalah

Katakan kita mempunyai tatasusunan yang mengandungi integer antara 1 dan 100, tetapi satu nombor tiada. Kita perlu mereka bentuk algoritma untuk mencari nombor yang hilang ini. Dalam contoh ini, tatasusunan harus mengandungi semua integer antara 1 dan 100, tetapi atas sebab tertentu, salah satu nombor itu tiada.

Penyelesaian

Kaedah 1: Kaedah jumlah perbezaan

Kita boleh mengira jumlah semua nombor dalam tatasusunan, dan kemudian menolak hasil tambah semua nombor yang secara teorinya harus terkandung dalam tatasusunan, dan perbezaan yang diperolehi adalah yang hilang nombor. Kerumitan masa kaedah ini ialah O(n), dengan n ialah panjang tatasusunan.

function findMissingNumber($arr)
{
    $n = count($arr);
    $sum = array_sum($arr);

    $expectedSum = ($n + 1) * ($n + 2) / 2;

    $missingNumber = $expectedSum - $sum;

    return $missingNumber;
}

$arr = [1, 2, 3, 4, 6, 7, 8, 9, 10]; //缺失数字为5
echo "缺失的数字是:" . findMissingNumber($arr);

Kaedah 2: Kaedah operasi XOR

Kita juga boleh menggunakan sifat operasi XOR untuk menyelesaikan masalah ini. XOR semua elemen dalam tatasusunan dan kemudian XOR semua nombor antara 1 dan 100, dan keputusan akhir ialah nombor yang hilang. Kerumitan masa kaedah ini juga O(n).

function findMissingNumber($arr)
{
    $n = count($arr);
    $missingNumber = 0;
    
    for($i = 0; $i < $n; $i++)
    {
        $missingNumber ^= $arr[$i];
        $missingNumber ^= ($i + 1);
    }

    $missingNumber ^= ($n + 1);

    return $missingNumber;
}

$arr = [1, 2, 3, 4, 6, 7, 8, 9, 10]; //缺失数字为5
echo "缺失的数字是:" . findMissingNumber($arr);

Ringkasan

Apabila menangani masalah mencari nombor yang hilang dalam tatasusunan, kita boleh memilih kaedah yang berbeza untuk menyelesaikannya. Kedua-dua kaedah yang diperkenalkan di atas adalah algoritma yang agak cekap dan boleh mencari nombor yang hilang dengan cepat dalam tatasusunan. Bergantung pada senario dan keperluan aplikasi tertentu, memilih algoritma yang sesuai boleh meningkatkan kecekapan dan kebolehbacaan kod.

Saya harap kaedah yang diperkenalkan dalam artikel ini akan membantu anda dan boleh diaplikasikan dalam pembangunan sebenar. Jika anda mempunyai sebarang soalan atau cadangan, sila tinggalkan mesej di bawah dan kami dengan senang hati akan menjawab anda.

Atas ialah kandungan terperinci Analisis algoritma PHP: kaedah yang cekap untuk mencari nombor yang hilang dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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