Carian binari dalam PHP
Apakah carian binari?
Carian binari ialah algoritma carian yang digunakan untuk mencari dengan cekap kedudukan nilai sasaran dalam tatasusunan (atau senarai) yang diisih. Ia berfungsi dengan membahagikan julat carian berulang kali kepada separuh dan membandingkan elemen tengah dengan nilai sasaran.
Algoritma carian binari mengikut langkah berikut:
Mulakan dengan keseluruhan tatasusunan yang diisih.
Tetapkan penunjuk kiri ke elemen pertama tatasusunan dan penunjuk kanan ke elemen terakhir.
Kira indeks tengah sebagai purata penunjuk kiri dan kanan (bahagian integer).
Membandingkan nilai pada indeks tengah dengan nilai sasaran.
Jika nilai perantaraan adalah sama dengan nilai sasaran, carian berjaya dan algoritma mengembalikan indeks.
Jika nilai sasaran lebih besar daripada nilai tengah, hilangkan separuh kiri julat carian dengan mengemas kini penuding kiri ke pertengahan + 1.
Jika nilai sasaran kurang daripada nilai tengah, hilangkan separuh kanan julat carian dengan mengemas kini penunjuk kanan ke pertengahan - 1.
Ulang langkah 3 hingga 7 sehingga nilai sasaran ditemui atau julat carian kosong (penunjuk kiri lebih besar daripada penunjuk kanan).
Jika julat carian kosong dan nilai sasaran tidak ditemui, algoritma membuat kesimpulan bahawa nilai sasaran tidak wujud dalam tatasusunan dan mengembalikan -1 atau petunjuk yang sesuai.
Carian binari ialah algoritma yang sangat cekap dengan kerumitan masa O(log n), dengan n ialah bilangan elemen dalam tatasusunan. Ia amat berkesan untuk tatasusunan diisih yang besar kerana ia mengecilkan julat carian dengan cepat dengan membahagikannya kepada separuh pada setiap langkah, membolehkan carian pantas walaupun dengan sejumlah besar elemen.
Program PHP carian binari
Kaedah 1 - Gunakan lelaran
Contoh
<?php function binarySearch($arr, $target) { $left = 0; $right = count($arr) - 1; while ($left <= $right) { $mid = floor(($left + $right) / 2); // Check if the target value is found at the middle index if ($arr[$mid] === $target) { return $mid; } // If the target is greater, ignore the left half if ($arr[$mid] < $target) { $left = $mid + 1; } // If the target is smaller, ignore the right half else { $right = $mid - 1; } } // Target value not found in the array return -1; } // Example usage 1 $sortedArray = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]; $targetValue = 91; $resultIndex = binarySearch($sortedArray, $targetValue); if ($resultIndex === -1) { echo "Target value not found in the array.<br>"; } else { echo "Target value found at index $resultIndex.<br>"; } // Example usage 2 $targetValue = 42; $resultIndex = binarySearch($sortedArray, $targetValue); if ($resultIndex === -1) { echo "Target value not found in the array."; } else { echo "Target value found at index $resultIndex."; } ?>
Output
Target value found at index 9. Target value not found in the array.
Kaedah 2 - Gunakan rekursi
Contoh
<?php function binarySearchRecursive($arr, $target, $left, $right) { if ($left > $right) { // Target value not found in the array return -1; } $mid = floor(($left + $right) / 2); // Check if the target value is found at the middle index if ($arr[$mid] === $target) { return $mid; } // If the target is greater, search the right half if ($arr[$mid] < $target) { return binarySearchRecursive($arr, $target, $mid + 1, $right); } // If the target is smaller, search the left half return binarySearchRecursive($arr, $target, $left, $mid - 1); } // Wrapper function for the recursive binary search function binarySearch($arr, $target) { $left = 0; $right = count($arr) - 1; return binarySearchRecursive($arr, $target, $left, $right); } // Example usage $sortedArray = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]; $targetValue = 16; $resultIndex = binarySearch($sortedArray, $targetValue); if ($resultIndex === -1) { echo "Target value not found in the array."; } else { echo "Target value found at index $resultIndex."; } ?>
Output
Target value found at index 4.
KESIMPULAN
Ringkasnya, carian binari ialah algoritma berkuasa yang boleh mencari nilai sasaran dengan cekap dalam tatasusunan yang disusun. Ia menyediakan dua pelaksanaan biasa: berulang dan rekursif. Kaedah lelaran menggunakan gelung sementara untuk membahagi julat carian berulang kali kepada separuh sehingga nilai sasaran ditemui atau julat menjadi kosong. Ia mempunyai pelaksanaan yang mudah dan sesuai untuk kebanyakan senario. Sebaliknya, kaedah rekursif menggunakan fungsi rekursif untuk melakukan carian binari. Ia mengikut logik yang sama seperti kaedah lelaran, tetapi menggunakan panggilan fungsi dan bukannya gelung. Carian binari rekursif menyediakan pelaksanaan yang lebih bersih, tetapi mungkin mempunyai overhed yang lebih tinggi sedikit disebabkan oleh manipulasi tindanan panggilan fungsi. Secara keseluruhan, kedua-dua kaedah menyediakan cara yang cekap dan boleh dipercayai untuk melaksanakan operasi carian binari.
Atas ialah kandungan terperinci Carian binari dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

PHP menjadikannya mudah untuk membuat kandungan web interaktif. 1) Secara dinamik menjana kandungan dengan memasukkan HTML dan paparkannya dalam masa nyata berdasarkan input pengguna atau data pangkalan data. 2) Penyerahan borang proses dan menjana output dinamik untuk memastikan bahawa htmlspecialchars digunakan untuk mencegah XSS. 3) Gunakan MySQL untuk membuat sistem pendaftaran pengguna, dan gunakan kata laluan dan preprocessing untuk meningkatkan keselamatan. Menguasai teknik ini akan meningkatkan kecekapan pembangunan web.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

PHP tetap penting dalam pembangunan web moden, terutamanya dalam pengurusan kandungan dan platform e-dagang. 1) PHP mempunyai ekosistem yang kaya dan sokongan rangka kerja yang kuat, seperti Laravel dan Symfony. 2) Pengoptimuman prestasi boleh dicapai melalui OPCACHE dan NGINX. 3) Php8.0 memperkenalkan pengkompil JIT untuk meningkatkan prestasi. 4) Aplikasi awan asli dikerahkan melalui Docker dan Kubernet untuk meningkatkan fleksibiliti dan skalabiliti.

PHP sesuai untuk pembangunan web, terutamanya dalam pembangunan pesat dan memproses kandungan dinamik, tetapi tidak baik pada sains data dan aplikasi peringkat perusahaan. Berbanding dengan Python, PHP mempunyai lebih banyak kelebihan dalam pembangunan web, tetapi tidak sebaik python dalam bidang sains data; Berbanding dengan Java, PHP melakukan lebih buruk dalam aplikasi peringkat perusahaan, tetapi lebih fleksibel dalam pembangunan web; Berbanding dengan JavaScript, PHP lebih ringkas dalam pembangunan back-end, tetapi tidak sebaik JavaScript dalam pembangunan front-end.

PHP dan Python masing -masing mempunyai kelebihan sendiri dan sesuai untuk senario yang berbeza. 1.PHP sesuai untuk pembangunan web dan menyediakan pelayan web terbina dalam dan perpustakaan fungsi yang kaya. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan standard yang kuat. Apabila memilih, ia harus diputuskan berdasarkan keperluan projek.

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver Mac版
Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.