程序描繪人生
知識(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://www.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:
博客園
模板提供:
滬江博客
一级做a爰片久久毛片人呢
|
久久精品国产亚洲Aⅴ香蕉
|
国产成人精品久久
|
久久狠狠爱亚洲综合影院
|
久久av无码专区亚洲av桃花岛
|
久久久一本精品99久久精品88
|
久久国产精品99精品国产987
|
久久久受www免费人成
|
久久精品国产日本波多野结衣
|
国内精品久久久久影院优
|
久久免费99精品国产自在现线
|
97久久婷婷五月综合色d啪蜜芽
|
欧美麻豆久久久久久中文
|
久久久久人妻一区二区三区
|
久久精品一区二区三区不卡
|
久久强奷乱码老熟女网站
|
av午夜福利一片免费看久久
|
综合久久精品色
|
精品久久久久久久久中文字幕
|
亚洲国产成人精品女人久久久
|
av无码久久久久久不卡网站
|
三级三级久久三级久久
|
国产精品免费看久久久香蕉
|
久久亚洲美女精品国产精品
|
蜜臀久久99精品久久久久久
|
久久久久久久尹人综合网亚洲
|
国产成人综合久久精品红
|
久久国产精品波多野结衣AV
|
久久中文骚妇内射
|
久久久久亚洲AV成人网人人网站
|
激情久久久久久久久久
|
久久AV高清无码
|
久久综合狠狠综合久久
|
久久久久久国产精品无码下载
|
成人午夜精品久久久久久久小说
|
丁香狠狠色婷婷久久综合
|
亚洲精品国产字幕久久不卡
|
久久久久久久久久久
|
亚洲人成网站999久久久综合
|
精品无码久久久久久久动漫
|
久久人人爽人人爽人人AV东京热
|