Rumah > pembangunan bahagian belakang > tutorial php > Cara paling berkesan untuk mencari elemen tertentu menggunakan tatasusunan PHP

Cara paling berkesan untuk mencari elemen tertentu menggunakan tatasusunan PHP

PHPz
Lepaskan: 2024-05-04 15:51:01
asal
624 orang telah melayarinya

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 paling berkesan untuk mencari elemen tertentu menggunakan tatasusunan PHP

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

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

Kes praktikal

Andaikan terdapat tatasusunan yang mengandungi gred pelajar:

$scores = [85, 90, 75, 95, 80];
Salin selepas log masuk

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 的学生。";
}
Salin selepas log masuk

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 的学生。";
}
Salin selepas log masuk

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!

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