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

WBOY
Lepaskan: 2024-03-02 08:40:01
asal
758 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!