暴力匹配演算法如果用暴力匹配的思路,並假設現在
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所有位置的比較組成,無論是否從模式串的起始位置開始,每次匹配過後...