時間複雜度:O(mn)
public class BruteForceAlgorithm {
public static final String T = "ABABAABBCABC";
public static final String P = "ABC";
public static void match(char[] t, char[] p)
{
for (int i = 0; i < t.length; i++)
{
char[] tmp = new char[p.length];
int index = 0;
for (int j = 0; j < p.length; j++)
{
if (i+j < t.length && t[i+j] == p[j])
{
tmp[index++] = p[j];
}
else
{
continue;
}
}
if (index == p.length)
{
System.out.println(new String(tmp));
}
}
}
public static void main(String[] args) {
match(T.toCharArray(), P.toCharArray());
}
}
The C code
void BF(char *x, int m, char *y, int n) {
int i, j;
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
}