Algoritma Carian Rentetan (String Search) dalam Java

Algoritma Carian Rentetan ialah teknik asas dalam Java pengaturcaraan yang digunakan untuk mencari subrentetan tertentu dalam rentetan yang lebih besar. Algoritma ini digunakan secara meluas dalam pelbagai aplikasi pemprosesan teks, termasuk penyunting teks, enjin carian dan alat analisis data.

Bagaimana Algoritma Carian Rentetan Berfungsi

Algoritma Carian Rentetan berfungsi dengan membandingkan setiap aksara subrentetan yang dicari dengan aksara rentetan utama. Ia berulang melalui rentetan utama dan menyemak kemungkinan padanan dengan membandingkan aksara satu demi satu. Jika padanan ditemui, ia menunjukkan kedudukan permulaan subrentetan dalam rentetan utama.

Kelebihan dan Kelemahan Algoritma Carian Rentetan

Kelebihan:

  • Pelaksanaan Mudah: Algoritma mudah difahami dan dilaksanakan, menjadikannya sesuai untuk tugas mencari rentetan asas.
  • Berkenaan dengan Pelbagai Senario: Algoritma ini boleh digunakan dalam pelbagai aplikasi yang melibatkan pencarian corak tertentu dalam data teks.

Kelemahan:

  • Tidak Cekap untuk Teks Besar: Dalam senario terburuk, kerumitan masa algoritma boleh menjadi tinggi, menjadikannya tidak cekap untuk teks besar.
  • Padanan Corak Terhad: Versi asas algoritma mungkin tidak mengendalikan keperluan padanan corak yang kompleks.

Contoh dan Penerangan

Mari kita pertimbangkan contoh menggunakan Algoritma Carian Rentetan untuk mencari perkataan tertentu dalam ayat dalam 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");  
        }  
    }  
}  

Dalam contoh ini, algoritma mencari subrentetan "musang" dalam teks yang diberikan. Ia berulang melalui setiap aksara teks, membandingkannya dengan aksara subrentetan. Apabila padanan ditemui, algoritma mengembalikan kedudukan permulaan subrentetan dalam teks.

Ini menggambarkan bagaimana Algoritma Carian Rentetan boleh mencari subrentetan dalam data teks yang lebih besar, menjadikannya teknik penting untuk manipulasi dan analisis teks dalam Java pengaturcaraan.