国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

BFU數(shù)據(jù)結(jié)構(gòu)頭歌實(shí)驗(yàn):基于BF算法的病毒感染檢測(cè)

這篇具有很好參考價(jià)值的文章主要介紹了BFU數(shù)據(jù)結(jié)構(gòu)頭歌實(shí)驗(yàn):基于BF算法的病毒感染檢測(cè)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這道題當(dāng)初我想著直接抄課本上的BF代碼,結(jié)果發(fā)現(xiàn)書中的代碼都是默認(rèn)模式串和主串的下標(biāo)從零開始,因此需要將書中的代碼進(jìn)行修改。如下圖所示,需要將變量i,j的初值都設(shè)為0。然后將書中出現(xiàn)的i,j全部加1即可。然后這個(gè)函數(shù)中的第三個(gè)參數(shù),pos的值我沒有使用,這個(gè)無所謂,因?yàn)檫@道題的模式匹配都是從主串的第一個(gè)位置開始。

第一個(gè)函數(shù)的代碼如下:

int Index_BF(HString P,HString V,int pos)
{//返回模式T在主串S中第pos個(gè)字符開始第一次出現(xiàn)的位置。若不存在,則返回值為0 
 //其中,T非空,1≤pos≤StrLength(S) 
   	V.length=strlen(V.ch);
 	int i=0,j=0;
 	while(i+1<=P.length&&j+1<=V.length)
 	{
 		if(P.ch[i]==V.ch[j])
 		{
 			++i;
 			++j;
		 }
		else
		{
			i=i-j+1;
			j=0;
		}
	 }
	 	if(j+1>V.length) 
		 {
		 return i-V.length+1;
		}	
		else
		return 0;
} 

第二個(gè)函數(shù)的算法沒有什么可說的,就按照一般的環(huán)形字符串解決方法,再開一個(gè)兩倍長(zhǎng)度的數(shù)組,將模式串存儲(chǔ)兩次,再依次取字符串即可。代碼如下:

bool Virus_detection(HString Virus,HString Person)
{//判斷是否匹配,如果可以,返回true,否則返回false 
//模式匹配算法調(diào)用Index_BF函數(shù) 
   	int flag=0;
	HString temp;
	temp.ch=new char[200];
	int m=Virus.length;
	for(int i=m,j=0;j<m;j++)
	{
		Virus.ch[i++]=Virus.ch[j];
	}
	Virus.ch[2*m]='\0';
	for(int  i=0;i<m;i++)
	{
		for(int j=0;j<m;j++){
			temp.ch[j]=Virus.ch[i+j];
		}
		temp.ch[m]='\0';
		flag=Index_BF(Person,temp,1);
		if(flag) break;
	}
	delete temp.ch;
	if(flag) 
	return true;	
	else
	return false;
}

這道題當(dāng)初我出現(xiàn)的問題是只定義了一個(gè)HString類型的temp,卻沒有為他分配空間,導(dǎo)致后面出現(xiàn)了內(nèi)存泄露的問題。

希望能幫助到大家。文章來源地址http://www.zghlxwxcb.cn/news/detail-740945.html

到了這里,關(guān)于BFU數(shù)據(jù)結(jié)構(gòu)頭歌實(shí)驗(yàn):基于BF算法的病毒感染檢測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包