Istraživanje algoritma pretraživanja nizova (String Search) u PHP-u

Algoritam traženja niza bitna je metoda u programiranju koja se koristi za lociranje položaja podniza unutar većeg niza. Ovaj se algoritam obično koristi za traženje određenih ključnih riječi, nizova znakova ili uzoraka unutar teksta ili podataka. U PHP-u su dostupne razne metode kao što su strpos() i za izvođenje pretraživanja nizova. strstr()

Kako radi algoritam pretraživanja niza

Algoritam pretraživanja niza radi na sljedeći način:

  1. Tekst za pretraživanje: Prvo, trebamo veći niz(tekst, podaci) unutar kojeg želimo pretraživati.
  2. Uzorak za traženje: Trebamo podniz(ključnu riječ, uzorak) koji želimo locirati unutar teksta.
  3. Usklađivanje niza: algoritam uspoređuje svaki znak uzorka s odgovarajućim znakovima u tekstu. Ako se odgovarajući znakovi ne podudaraju, algoritam nastavlja provjeravati sljedeće pozicije.
  4. Vraćanje pozicije: Ako se podniz pronađe unutar većeg niza, algoritam vraća poziciju svog prvog pojavljivanja. Ako nije pronađen, algoritam vraća nepostojeću vrijednost(npr. -1).

Prednosti i nedostaci algoritma pretraživanja niza

Prednosti:

  • Jednostavan i razumljiv: ovaj algoritam je jednostavan za implementaciju i korištenje.
  • Dobra izvedba za kratke nizove: dobro radi pri pretraživanju kratkih nizova.

Nedostaci:

  • Loša izvedba za duge nizove: Izvedba se može znatno smanjiti kada se traži u dugim nizovima.
  • Pronalazi samo prvo pojavljivanje: Algoritam vraća samo poziciju prvog pojavljivanja podniza.

Primjer i objašnjenje

Pretpostavimo da imamo tekst opisa proizvoda i želimo provjeriti screen pojavljuje li se ključna riječ "u tekstu. Ispod je primjer kako izvršiti pretraživanje niza u PHP-u:

$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.";  
}  

U ovom primjeru koristimo strpos() funkciju za traženje položaja prvog pojavljivanja ključne riječi screen  unutar teksta. Ako je ključna riječ pronađena, ispisuje se njena prva pozicija; ako nije, prikazuje se poruka da ključna riječ nije pronađena.

Iako je jednostavan i učinkovit za osnovne slučajeve pretraživanja, algoritam pretraživanja niza može loše raditi s dugim tekstovima i ne pruža mogućnost pronalaženja svih pojavljivanja podniza.