Algoritmi i kërkimit të vargut (String Search) në Java

Algoritmi i kërkimit të vargut është një teknikë themelore në Java programim që përdoret për të kërkuar një nënvarg specifik brenda një vargu më të madh. Ky algoritëm përdoret gjerësisht në aplikacione të ndryshme të përpunimit të tekstit, duke përfshirë redaktuesit e tekstit, motorët e kërkimit dhe mjetet e analizës së të dhënave.

Si funksionon algoritmi i kërkimit të vargut

Algoritmi i kërkimit të vargut funksionon duke krahasuar çdo karakter të nënvargut që kërkohet me karakteret e vargut kryesor. Ai përsëritet përmes vargut kryesor dhe kontrollon për një përputhje të mundshme duke krahasuar karakteret një nga një. Nëse gjendet një përputhje, ajo tregon pozicionin fillestar të nënvargut brenda vargut kryesor.

Avantazhet dhe disavantazhet e algoritmit të kërkimit të vargut

Përparësitë:

  • Zbatim i thjeshtë: Algoritmi është i lehtë për t'u kuptuar dhe zbatuar, duke e bërë atë të përshtatshëm për detyrat bazë të kërkimit të vargjeve.
  • I zbatueshëm për skenarë të ndryshëm: Ky algoritëm mund të përdoret në një gamë të gjerë aplikacionesh që përfshijnë kërkimin e modeleve specifike brenda të dhënave të tekstit.

Disavantazhet:

  • Joefikas për tekste të mëdha: Në skenarët më të keq, kompleksiteti kohor i algoritmit mund të bëhet i lartë, duke e bërë atë joefikas për tekste të mëdha.
  • Përputhja e modelit të kufizuar: Versioni bazë i algoritmit mund të mos përballojë kërkesat komplekse të përputhjes së modelit.

Shembull dhe Shpjegim

Le të shqyrtojmë një shembull të përdorimit të Algoritmit të Kërkimit të Vargjeve për të gjetur një fjalë specifike në një fjali në Java.

public class StringSearchExample {  
    public static int searchString(String mainString, String substring) {  
        int mainLength = mainString.length();  
        int subLength = substring.length();  
  
        for(int i = 0; i <= mainLength- subLength; i++) {  
            int j;  
  
            for(j = 0; j < subLength; j++) {  
                if(mainString.charAt(i + j) != substring.charAt(j)) {  
                    break;  
                }  
            }  
  
            if(j == subLength) {  
                return i; // Substring found at position i  
            }  
        }  
  
        return -1; // Substring not found  
    }  
  
    public static void main(String[] args) {  
        String text = "The quick brown fox jumps over the lazy dog";  
        String search = "fox";  
  
        int position = searchString(text, search);  
  
        if(position != -1) {  
            System.out.println("Substring found at position: " + position);  
        } else {  
            System.out.println("Substring not found");  
        }  
    }  
}  

Në këtë shembull, algoritmi kërkon për nënvargun "fox" brenda tekstit të dhënë. Ai përsëritet përmes çdo karakteri të tekstit, duke e krahasuar atë me karakteret e nënvargut. Kur gjendet një përputhje, algoritmi kthen pozicionin fillestar të nënvargut në tekst.

Kjo ilustron se si Algoritmi i Kërkimit të Vargjeve mund të lokalizojë nënvargjet brenda të dhënave më të mëdha të tekstit, duke e bërë atë një teknikë thelbësore për manipulimin dhe analizën e tekstit në Java programim.