📜  用于模式搜索的朴素算法的Java程序(1)

📅  最后修改于: 2023-12-03 15:27:11.825000             🧑  作者: Mango

用于模式搜索的朴素算法的Java程序

简介

在计算机科学中,朴素字符串匹配算法是一种简单的字符串匹配方法,该方法通过从文本中的每个字符开始,逐个比较该字符开始的子字符串与所需匹配的字符串是否相同,直到找到完全匹配的字符串或文本末尾。

朴素算法虽然简单,但即使在较大的文本中也可以找到相对应的模式。

实现

下面是一个使用朴素算法实现字符串匹配的Java程序示例:

public class NaivePatternSearch {
    public static void search(String txt, String pat) {
        int M = pat.length();
        int N = txt.length();

        for (int i = 0; i <= N - M; i++) {
            int j;

            for (j = 0; j < M; j++) {
                if (txt.charAt(i + j) != pat.charAt(j)) {
                    break;
                }
            }

            if (j == M) {
                System.out.println("在位置 " + i + " 找到匹配。");
            }
        }
    }

    public static void main(String[] args) {
        String txt = "AABBCAABCBCAABCD";
        String pat = "AABC";
        search(txt, pat);
    }
}

在该程序中,search() 方法用于查找模式字符串 pat 是否在文本字符串 txt 中出现。

程序首先找到模式字符串 pat 和文本字符串 txt 的长度 M 和 N。

然后程序从 0 到 N-M 的索引进行循环。在每个索引位置,程序从该位置开始与模式字符串 pat 进行比较。如果匹配,程序会将该位置作为匹配位置打印出来。

main() 方法中定义了用于搜索的示例字符串,然后调用 search() 方法进行搜索。

结论

虽然朴素算法在大型数据集中的状态可能非常低效,但它仍然是一种简单而实用的方法,可以方便地进行小型数据集上的字符串匹配程序编写。