程序描繪人生
知識(shí)改變命運(yùn),學(xué)習(xí)成就未來(lái)。
C++博客
新隨筆
聯(lián)系
聚合
管理
隨筆 - 89 文章 - 118 trackbacks - 0
<
2009年11月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
留言簿
(16)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
(56)
C++(3)
hadoop(1)
NodeJS(1)
NSIS安裝包(1)
Windows開(kāi)發(fā)(2)
電子支付
高性能服務(wù)器(1)
架構(gòu)設(shè)計(jì)(5)
搜索引擎(8)
算法(12)
研發(fā)管理(15)
轉(zhuǎn)載(7)
隨筆檔案
(89)
2018年6月 (1)
2018年2月 (1)
2017年5月 (1)
2017年1月 (1)
2016年7月 (1)
2016年5月 (1)
2016年1月 (1)
2015年12月 (1)
2015年2月 (1)
2014年8月 (1)
2014年5月 (4)
2014年2月 (1)
2013年11月 (3)
2013年9月 (3)
2013年8月 (4)
2013年6月 (1)
2013年5月 (1)
2013年4月 (1)
2013年2月 (1)
2012年12月 (15)
2012年11月 (6)
2012年10月 (1)
2012年9月 (2)
2012年8月 (1)
2012年3月 (2)
2011年12月 (1)
2011年11月 (1)
2011年9月 (1)
2011年8月 (1)
2011年7月 (1)
2011年5月 (1)
2010年12月 (1)
2010年9月 (1)
2010年8月 (2)
2010年7月 (1)
2010年3月 (1)
2009年12月 (2)
2009年11月 (2)
2008年9月 (1)
2008年8月 (4)
2008年7月 (3)
2008年5月 (1)
2008年4月 (1)
2008年3月 (2)
2008年2月 (2)
2007年12月 (2)
2007年9月 (1)
文章分類(lèi)
C++
技術(shù)隨筆
推薦博客
在你身邊
胡滿超的非技術(shù)博客
搜索
最新隨筆
1.?LeetCode – Median of Two Sorted Arrays - findMedianSortedArrays
2.?深入淺出LSH
3.?LSH Locality-Sensitive Hashing 局部敏感哈希算法總結(jié)
4.?R語(yǔ)言預(yù)測(cè)實(shí)戰(zhàn)源代碼 Predictive Practice With R source code
5.?程序員如何轉(zhuǎn)型做大數(shù)據(jù)
6.?實(shí)戰(zhàn)java高并發(fā)程序設(shè)計(jì) 源代碼 source code
7.?spark機(jī)器學(xué)習(xí) 源代碼 Machine Learning With Spark source code
8.?機(jī)器學(xué)習(xí)算法原理與編程實(shí)踐 代碼下載地址
9.?轉(zhuǎn): 國(guó)標(biāo)一級(jí)和國(guó)標(biāo)二級(jí)漢字
10.?軟件架構(gòu)設(shè)計(jì)要點(diǎn)
11.?Exception in thread "main" java.lang.ClassNotFoundException: WordCount
12.?轉(zhuǎn):高性能服務(wù)端編程知識(shí)點(diǎn)梳理圖解
13.?nodejs socket is connect
14.?轉(zhuǎn):CTime與CString相互轉(zhuǎn)化
15.?轉(zhuǎn):一個(gè)故事告訴你比特幣的原理及運(yùn)作機(jī)制
16.?這就是搜索引擎-筆試6-鏈接分析
17.?這就是搜索引擎-筆試5-檢索模型與搜索排序
18.?這就是搜索引擎-筆試4-索引壓縮
19.?這就是搜索引擎-筆試3-搜索引擎索引
20.?這就是搜索引擎-筆試2
最新評(píng)論
1.?re: 迷宮最短路徑問(wèn)題解析
@rover
這個(gè)是C++模板
--胡滿超
2.?re: 迷宮最短路徑問(wèn)題解析
stack<Postion> path__;
這個(gè)里面 ”<> “符號(hào)是什么意思?我在C++語(yǔ)言里面沒(méi)見(jiàn)過(guò)呢? 初學(xué)者,大神勿噴。
--rover
3.?re: 機(jī)器學(xué)習(xí)算法原理與編程實(shí)踐 代碼下載地址
跪謝大神了,幫了我很多
--naomi
4.?re: 如何在NSIS中執(zhí)行BAT文件
@humanchao
我想試試軟件
--舒
5.?re: 判斷單鏈表是否存在環(huán),判斷兩個(gè)鏈表是否相交問(wèn)題詳解
n只可能是1
--lookdown
6.?re: 判斷單鏈表是否存在環(huán),判斷兩個(gè)鏈表是否相交問(wèn)題詳解
當(dāng)fast若與slow相遇時(shí),slow肯定沒(méi)有走遍歷完鏈表@科匠
那有沒(méi)有可能slow已經(jīng)走了多于一圈了呢?
--gqqnbig
7.?re: 迷宮最短路徑問(wèn)題解析
。。。。。。。。
--11
8.?re: 轉(zhuǎn):CTime與CString相互轉(zhuǎn)化
看起來(lái)很簡(jiǎn)練啊 @楊粼波
--胡滿超
9.?re: 轉(zhuǎn):CTime與CString相互轉(zhuǎn)化
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--楊粼波
10.?re: VC取得目錄大小[未登錄](méi)
GetDiskFreeSpaceEx獲得的是驅(qū)動(dòng)器實(shí)際占用的空間,而下面代碼獲得的是目錄大小,請(qǐng)問(wèn)如何獲得目錄實(shí)際占用的空間? sinee3000@sina.com
--xy
閱讀排行榜
1.?判斷單鏈表是否存在環(huán),判斷兩個(gè)鏈表是否相交問(wèn)題詳解(34815)
2.?機(jī)器學(xué)習(xí)算法原理與編程實(shí)踐 代碼下載地址(25450)
3.?spark機(jī)器學(xué)習(xí) 源代碼 Machine Learning With Spark source code(23218)
4.?實(shí)戰(zhàn)java高并發(fā)程序設(shè)計(jì) 源代碼 source code(21398)
5.?轉(zhuǎn):幾種MFC對(duì)話框的隱藏方法(10824)
6.?單鏈表逆序輸出(10379)
7.?VC中取得毫秒級(jí)的時(shí)間(9843)
8.?迷宮最短路徑問(wèn)題解析(8904)
9.?深入淺出LSH(8896)
10.?Exception in thread "main" java.lang.ClassNotFoundException: WordCount(7535)
字符串常見(jiàn)算法之一:查找一個(gè)短串在一個(gè)長(zhǎng)串中位置
介紹的一些字符串處理的問(wèn)題在日常編程中比較常見(jiàn),但是在大學(xué)讀書(shū)的時(shí)候幾乎一個(gè)都沒(méi)有涉及,最近學(xué)習(xí)了一下在這里介紹給大家,僅供參考。
這些算法與內(nèi)容包括:
1、 查找一個(gè)短串在一個(gè)長(zhǎng)串中位置;
2、 查找一個(gè)字符串中最長(zhǎng)的重復(fù)子串;
3、 查找一個(gè)字符串中重復(fù)最多的子串;
4、 兩個(gè)字符串最長(zhǎng)的公共子串(連續(xù));
5、 兩個(gè)字符串最長(zhǎng)的公共子序列(不連續(xù));
6、 介紹一種強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),Suffix tree.
這里有一個(gè)PPT:
http://m.shnenglu.com/Files/humanchao/StringAlg.zip
-------------------------------------------------
查找一個(gè)短串在一個(gè)長(zhǎng)串中位置
這個(gè)問(wèn)題傳統(tǒng)的解法時(shí)間復(fù)雜度為O(m*n),m、n為兩個(gè)串的長(zhǎng)度。有一個(gè)Sunday算法,可以最大限度的優(yōu)化這個(gè)比較過(guò)程,原理如下:
1、建立一個(gè)hash table,依次把search各個(gè)字符值作為table索引,為table相應(yīng)的位置一個(gè)值(表示字符存在),如果出現(xiàn)重復(fù),后面的位置會(huì)覆蓋前面的位置。
例:我們要在"WHICH-FINALLY-HALTS.—AT-THAT-POINT"(簡(jiǎn)稱(chēng)string)查找" AT-THAT "(簡(jiǎn)稱(chēng)pat),剛開(kāi)始時(shí),把pat與string對(duì)齊,查看串string中與串pat 相對(duì)應(yīng)的字符(F),在pat的位置,這個(gè)查找的過(guò)程時(shí)間復(fù)雜度通過(guò)hash table的下標(biāo)索引為 O(1):
2、如果發(fā)現(xiàn)沒(méi)有,說(shuō)明字符F之前已經(jīng)無(wú)法與pat匹配,直接跳到position(F)+stringlength(pat)
3、發(fā)現(xiàn)”-”在pat位置3,于是重新定位對(duì)齊兩串為:
4、倒序(從最后一個(gè)向前)比較兩串,發(fā)現(xiàn)無(wú)法匹配,繼續(xù)跳轉(zhuǎn)->查找->定位
因?yàn)樯厦嬉呀?jīng)有一個(gè)T匹配成功,這次要從HALTS的S來(lái)查找,于是定位為:
5、上圖無(wú)法匹配,從”--AT-“中A后的”-”繼續(xù)查找,重復(fù)上過(guò)程,最終匹配如圖:
這個(gè)算法關(guān)鍵點(diǎn):
1、建立為pat建立hash表,以提高查找字符的速度;
2、對(duì)齊跳轉(zhuǎn),快速的后移比較,使比較次數(shù)減少。
具體的代碼實(shí)現(xiàn)可以參考鏈接:
http://blog.csdn.net/unicode1985/archive/2007/05/30/1631038.aspx
posted on 2009-11-25 17:20
胡滿超
閱讀(3138)
評(píng)論(0)
編輯
收藏
引用
只有注冊(cè)用戶(hù)
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Copyright ©2025 胡滿超 Powered by:
博客園
模板提供:
滬江博客
热久久视久久精品18
|
久久久无码人妻精品无码
|
蜜桃麻豆www久久国产精品
|
久久婷婷五月综合成人D啪
|
亚洲精品乱码久久久久久蜜桃
|
久久久久亚洲av毛片大
|
精品久久久久久无码国产
|
亚洲中文久久精品无码
|
久久久综合九色合综国产
|
国产免费久久精品丫丫
|
国内高清久久久久久
|
国产91久久精品一区二区
|
亚洲国产精品一区二区三区久久
|
久久精品国产清高在天天线
|
国产成人久久久精品二区三区
|
久久久久高潮综合影院
|
国产免费久久精品99久久
|
人妻无码中文久久久久专区
|
日本精品久久久久影院日本
|
久久精品国产亚洲麻豆
|
久久久久亚洲AV无码永不
|
久久人人爽人人人人片av
|
久久99精品久久久久久不卡
|
亚洲国产精品无码久久一区二区
|
97久久久久人妻精品专区
|
国内精品人妻无码久久久影院导航
|
国产福利电影一区二区三区久久久久成人精品综合
|
性欧美大战久久久久久久
|
久久久久九国产精品
|
青青草国产精品久久久久
|
国产精品久久久久久影院
|
国内精品久久久久影院日本
|
亚洲精品高清国产一久久
|
久久久久久亚洲AV无码专区
|
亚洲国产精品无码久久98
|
久久婷婷午色综合夜啪
|
亚洲日本va午夜中文字幕久久
|
久久久久综合国产欧美一区二区
|
国产99久久久国产精免费
|
精品久久国产一区二区三区香蕉
|
久久久久国产一区二区三区
|