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
PHPzasal
2024-05-04 15:51:01645semak imbas

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
}

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!

Kenyataan:
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

Artikel berkaitan

Lihat lagi