字串暴力匹配演算法

2021-10-09 02:59:10 字數 722 閱讀 5996

暴力匹配演算法

如果用暴力匹配的思路,並假設現在

str1

匹配到

i位置,子串

str2

匹配到

j 位置,則有:

1) 如果當前字元匹配成功(即

str1[

i] == str2[j]

),則i++,

j++,繼續匹配下乙個字元 2)

如果失配(即

str1[

i]! = str2[j]

),令i= i

- (j - 1)

,j = 0

。相當於每次匹配失敗時,

i回溯,

j 被置為0。

3)用暴力方法解決的話就會有大量的回溯,每次只移動一位,若是不匹配,移動到下一位接著判斷,浪費了大量的時間。

(不可行!)

4) 暴力匹配演算法實現.

**演示:

package com.liu.kmp;

public class violencematch

public static int match(string str1,string str2) else

} if(j == len2) else

}}

字串匹配暴力演算法

include define maxsize 100 typedef struct sqstring void strassign sqstring s,char cstr 初始化串 s.length i void destroystr sqstring s 釋放串 void strcopy sqs...

演算法 字串匹配演算法 暴力匹配演算法 KMP演算法

如果當前字元匹配成功,即 str1 i str2 j 則 i j 繼續匹配下乙個字元 如果當前字元匹配失敗,則 i i j 1 j 0 也就是每次匹配失敗時,i回溯,j被置為0 public static void main string args 暴力匹配演算法 public static int...

字串匹配 暴力搜尋演算法

主要特徵 1 沒有預處理階段 2 需要常量額外空間 3 通常需要模式串視窗向右移動乙個位置 4 可以按照任意順序進行比較 5 搜尋的時間複雜度為 o mn 6 文字字元期望比較次數 2n演算法描述 暴力搜尋演算法由文字串中從0到 n m所有位置的比較組成,無論是否從模式串的起始位置開始,每次匹配過後...