麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

4.3串的模式匹配算法(BF算法)

2019-11-11 06:03:14
字體:
供稿:網(wǎng)友

4.3.1 求子串位置的定位函數(shù)Index(S,T,pos)

子串的定位操作通常稱做串的模式匹配(其中T稱為模式串),采用定長順序存儲結(jié)構(gòu),可以寫出不依賴于其他串操作的匹配算法。

算法4.5:

下面是書中的偽代碼:

int Index(SString S, SString T, int pos) { 	// 返回子串T在主串S中第pos個字符之后的位置。	// 若不存在,則函數(shù)值為0。	// 其中,T非空,1≤pos≤StrLength(S)。	int i = pos;	int j = 1;	while (i <= S[0] && j <= T[0]) 	{		if (S[i] == T[j]) // 繼續(xù)比較后繼字符		{  			++i;			++j;		}		else // 指針后退重新開始匹配 		{			i = i - j + 2;			j = 1;		}	}	if (j > T[0]) 		return i - T[0];	else 		return 0;} // Index

下面分析下:

這里先說明下,這個S[0],T[0]這個地方存儲了整個串的大小。

這個代碼的巧妙之處在于i=i-j+2和j=1這個地方,這個i=j-j+2,可以讓i進(jìn)行后移,也就是S后移,這里j=1,的意思如下:舉個例子,當(dāng)T中是ABC,而S是ABABABC,pos為1,那么j=1的作用就是清理,什么叫清理,意思就是當(dāng)發(fā)現(xiàn)S中只有前兩個字母相似,而沒有第三個,這時重新計數(shù)。當(dāng)然i也要進(jìn)行回溯。

下面這張圖,提現(xiàn)了這個過程(T='abcac'和主串S,pos=1)

這節(jié)就到這,下一節(jié)講解數(shù)據(jù)結(jié)構(gòu)里面的第一個難點:

KMP算法!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久综合| 国产人成免费爽爽爽视频 | 免费久久久久 | av日韩一区二区三区 | 国产一区二区三区撒尿在线 | 欧美中文字幕一区二区三区亚洲 | 神秘电影91 | 亚洲涩涩图 | 91精品国产91久久久久久不卞 | 西川av在线一区二区三区 | 欧美成人国产va精品日本一级 | 黄a大片 | 国产免费一级淫片 | 欧美性受xxx黑人xyx性爽 | 亚洲一区 国产精品 | 成年人视频在线免费观看 | www.777含羞草 | av在线在线 | 亚洲日韩中文字幕一区 | 91豆奶 | 九九热视频在线 | 国产午夜精品视频免费不卡69堂 | 成人短视频在线播放 | 欧美精品成人一区二区在线观看 | 中文在线免费观看 | 国产三级三级三级三级 | 在线91观看 | 欧洲黄色一级视频 | 欧美激情猛片xxxⅹ大3 | 黄网在线| 亚洲第一成网站 | 男女牲高爱潮免费视频男女 | 久久久久久久久亚洲精品 | 中文字幕亚洲一区二区三区 | 18被视频免费观看视频 | 国产精品成人免费一区久久羞羞 | 天堂成人国产精品一区 | 国色天香综合网 | 偿还电影免费 | 日韩av有码在线 | 国产一区二区三区精品在线观看 |