Cara yang berkesan untuk mencari elemen tertentu menggunakan tatasusunan PHP termasuk carian berjujukan dan carian binari. Carian berurutan berfungsi pada mana-mana tatasusunan, manakala carian binari hanya berfungsi pada tatasusunan yang diisih. Langkah-langkah untuk penghitungan nombor siri adalah seperti berikut: Carian berurutan: melintasi tatasusunan dan bandingkan elemen satu demi satu sehingga elemen sasaran ditemui atau penghujung tatasusunan dicapai. Carian binari: Kurangkan julat carian secara berterusan sebanyak separuh sehingga unsur sasaran ditemui atau julat carian dikurangkan kepada satu elemen sahaja.
Cara yang cekap untuk mencari elemen tertentu menggunakan tatasusunan PHP
Mencari elemen menggunakan tatasusunan ialah tugas biasa dalam PHP. Terdapat pelbagai cara untuk mencapai matlamat ini, masing-masing mempunyai kelebihan dan keburukan tersendiri. Artikel ini akan memperkenalkan beberapa kaedah yang paling berkesan dan menyediakan kes praktikal untuk rujukan anda.
1. Carian berurutan
Carian berurutan ialah kaedah yang paling mudah. Ia berulang melalui tatasusunan, membandingkan elemen demi elemen sehingga elemen sasaran ditemui atau penghujung tatasusunan dicapai.
function sequentialSearch($arr, $target) { for ($i = 0; $i < count($arr); $i++) { if ($arr[$i] == $target) { return $i; // 返回元素的下标 } } return -1; // 如果未找到,返回 -1 }
2. Carian binari
Carian binari hanya berfungsi pada tatasusunan yang diisih. Ia meningkatkan kecekapan dengan terus mengecilkan skop carian sebanyak separuh.
function binarySearch($arr, $target) { $low = 0; $high = count($arr) - 1; while ($low <= $high) { $mid = (int) (($low + $high) / 2); if ($arr[$mid] == $target) { return $mid; } else if ($arr[$mid] < $target) { $low = $mid + 1; } else { $high = $mid - 1; } } return -1; }
Kes praktikal
Andaikan terdapat tatasusunan yang mengandungi gred pelajar:
$scores = [85, 90, 75, 95, 80];
Untuk mencari gred pelajar tertentu, anda boleh menggunakan kod contoh berikut:
$targetScore = 90; $index = sequentialSearch($scores, $targetScore); if ($index != -1) { echo "找到了成绩为 $targetScore 的学生,下标为 $index。"; } else { echo "找不到成绩为 $targetScore 的学生。"; }
Untuk tatasusunan yang diisih, anda boleh menggunakan tatasusunan berikut kod untuk melakukan carian binari:
$targetScore = 90; $index = binarySearch($scores, $targetScore); if ($index != -1) { echo "找到了成绩为 $targetScore 的学生,下标为 $index。"; } else { echo "找不到成绩为 $targetScore 的学生。"; }
Dengan menggunakan kaedah di atas, anda boleh mencari elemen khusus dalam tatasusunan PHP dengan cepat dan cekap, sekali gus meningkatkan prestasi kod anda.
Atas ialah kandungan terperinci Cara paling berkesan untuk mencari elemen tertentu menggunakan tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!