Meneroka (String Search) Algoritma Carian Rentetan dalam PHP

Algoritma Carian Rentetan ialah kaedah penting dalam pengaturcaraan yang digunakan untuk mencari kedudukan subrentetan dalam rentetan yang lebih besar. Algoritma ini biasanya digunakan untuk mencari kata kunci tertentu, urutan aksara atau corak dalam teks atau data. Dalam PHP, pelbagai kaedah seperti strpos() dan strstr() tersedia untuk melakukan carian rentetan.

Cara Algoritma Carian Rentetan Berfungsi

Algoritma Carian String beroperasi seperti berikut:

  1. Teks untuk Cari Dalam: Pertama, kita memerlukan rentetan yang lebih besar(teks, data) yang mana kita ingin mencari.
  2. Corak untuk Dicari: Kami memerlukan subrentetan(kata kunci, corak) yang ingin kami cari dalam teks.
  3. Memadankan Rentetan: Algoritma membandingkan setiap aksara corak dengan aksara yang sepadan dalam teks. Jika aksara yang sepadan tidak sepadan, algoritma terus menyemak kedudukan seterusnya.
  4. Kedudukan Kembali: Jika subrentetan ditemui dalam rentetan yang lebih besar, algoritma mengembalikan kedudukan kejadian pertamanya. Jika tidak dijumpai, algoritma mengembalikan nilai yang tidak wujud(cth, -1).

Kelebihan dan Kelemahan Algoritma Carian Rentetan

Kelebihan:

  • Mudah dan Boleh Difahami: Algoritma ini mudah untuk dilaksanakan dan digunakan.
  • Prestasi Baik untuk Rentetan Pendek: Ia berfungsi dengan baik apabila mencari dalam rentetan pendek.

Kelemahan:

  • Prestasi Lemah untuk Rentetan Panjang: Prestasi boleh menurun dengan ketara apabila mencari dalam rentetan panjang.
  • Hanya Menemui Kejadian Pertama: Algoritma hanya mengembalikan kedudukan kejadian pertama subrentetan.

Contoh dan Penerangan

Katakan kami mempunyai teks penerangan produk dan kami ingin menyemak sama ada kata kunci screen "muncul dalam teks. Di bawah ialah contoh cara melakukan carian rentetan dalam PHP:

$text = "This product features a wide and high-quality screen.";  
$keyword = "screen";  
  
$position = strpos($text, $keyword);  
  
if($position !== false) {  
    echo "The keyword \"$keyword\" was found at position $position in the text.";  
} else {  
    echo "The keyword \"$keyword\" was not found in the text.";  
}  

Dalam contoh ini, kami menggunakan strpos() fungsi untuk mencari kedudukan kejadian pertama kata kunci screen  dalam teks. Jika kata kunci ditemui, kedudukan pertamanya dicetak; jika tidak, mesej yang menyatakan bahawa kata kunci tidak ditemui dipaparkan.

Walaupun mudah dan berkesan untuk kes carian asas, algoritma Carian Rentetan mungkin berprestasi buruk dengan teks yang panjang dan tidak menyediakan keupayaan untuk mencari semua kejadian subrentetan itu.