Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat?
Ikhtisar:
Algoritma carian binari ialah algoritma carian yang cekap, yang sesuai untuk mencari elemen tertentu dalam tatasusunan tersusun. Artikel ini akan memperkenalkan prinsip algoritma carian binari secara terperinci dan memberikan contoh kod PHP.
function binarySearch($arr, $target) { $left = 0; // 查找范围的左边界 $right = count($arr) - 1; // 查找范围的右边界 while ($left <= $right) { $mid = floor(($left + $right) / 2); // 计算中间元素的索引 if ($arr[$mid] == $target) { return $mid; // 找到目标元素,返回索引 } elseif ($arr[$mid] < $target) { $left = $mid + 1; // 目标元素在中间元素的右侧 } else { $right = $mid - 1; // 目标元素在中间元素的左侧 } } return -1; // 查找失败,返回-1 } // 示例用法 $sortedArray = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]; $targetElement = 11; $result = binarySearch($sortedArray, $targetElement); if ($result == -1) { echo "目标元素 $targetElement 不存在于数组中。"; } else { echo "目标元素 $targetElement 的索引是 $result。"; }
Dalam contoh di atas, kami menentukan dua pembolehubah bernama binarySearch
的函数来实现二分查找。函数接受两个参数:有序数组$arr
和目标元素$target
。函数运行的过程中,使用了$left
和$right
untuk mewakili sempadan kiri dan kanan julat carian, dengan melaraskan secara berterusan Sempadan sempitkan skop carian dan akhirnya cari elemen sasaran atau tentukan ia tidak wujud.
Akhir sekali, kami menentukan contoh penggunaan yang menunjukkan cara menggunakan algoritma carian binari untuk mencari elemen tertentu dalam tatasusunan tersusun dan mengeluarkan hasilnya.
Kesimpulan:
Algoritma carian binari ialah algoritma carian yang cekap, sesuai untuk mencari elemen tertentu dalam tatasusunan tersusun. Dengan terus menyempitkan skop carian, carian binari boleh mengesan elemen sasaran dengan cepat. Dalam pembangunan sebenar, kami boleh menggabungkan algoritma carian binari untuk reka bentuk kod mengikut keperluan untuk meningkatkan kecekapan carian.
【Bilangan perkataan: 451 patah perkataan】
Atas ialah kandungan terperinci Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!