﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-青菜猫-随笔分类-其它</title><link>http://www.blogjava.net/sundc/category/45131.html</link><description>青菜猫</description><language>zh-cn</language><lastBuildDate>Tue, 21 May 2013 17:28:06 GMT</lastBuildDate><pubDate>Tue, 21 May 2013 17:28:06 GMT</pubDate><ttl>60</ttl><item><title>BF算法 字符串匹配java代码实现</title><link>http://www.blogjava.net/sundc/archive/2013/05/21/399564.html</link><dc:creator>青菜猫(孙宇)</dc:creator><author>青菜猫(孙宇)</author><pubDate>Tue, 21 May 2013 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/sundc/archive/2013/05/21/399564.html</guid><wfw:comment>http://www.blogjava.net/sundc/comments/399564.html</wfw:comment><comments>http://www.blogjava.net/sundc/archive/2013/05/21/399564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sundc/comments/commentRss/399564.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sundc/services/trackbacks/399564.html</trackback:ping><description><![CDATA[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; BF（Brute  Force）算法核心思想是：首先S[1]和T[1]比较，若相等，则再比较S[2]和T[2]，一直到T[M]为止；若S[1]和T[1]不等，则T向 右移动一个字符的位置，再依次进行比较。如果存在k，1&#8804;k&#8804;N，且S[k+1&#8230;k+M]=T[1&#8230;M]，则匹配成功；否则失败。该算法最坏情况下要进行 M*(N-M+1)次比较，<a target="_blank" href="http://baike.baidu.com/view/104946.htm">时间复杂度</a>为O(M*N)<br /><div>&nbsp;&nbsp;&nbsp;&nbsp; 比如: String a ="123456789" String b= "23"<br />&nbsp;&nbsp; 其实就是循环 a一个一个字符匹配，开始a[0]和b[0]匹配，没有找到，直接不用找b[1]，直接用a[1]和b[0]匹配发现已经 找到，然后继续用<div>a[2]和b[1]匹配发现已经 找到。前且是b字符串末尾。说明已经完全找到。返回结果<br />&nbsp; JAVA代码实现</div></div><div><div>/**<br />&nbsp;&nbsp; &nbsp; * 匹配字符串，判断 b字符串在a出现的起始位置，没有找到返回（-1）<br />&nbsp;&nbsp; &nbsp; * @param a<br />&nbsp;&nbsp; &nbsp; * @param b<br />&nbsp;&nbsp; &nbsp; * @return<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public static int indexOf(String a,String b){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;char[] as = a.toCharArray();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;char[] bs = b.toCharArray();<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int begin = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for(int i = 0 ; i &lt;as.length; i++){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int k = nextStr(as[i], bs,begin);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//说明已经找到<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( k == begin ){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return i-begin;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//说明找到一个字符，需要继续找<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else if( k &gt;= 0 ){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;begin = k;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}else{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//没有找到继续找&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;begin = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return -1;<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * 匹配字符串，找到字符串位置<br />&nbsp;&nbsp; &nbsp; * @param c<br />&nbsp;&nbsp; &nbsp; * @param cs<br />&nbsp;&nbsp; &nbsp; * @param begin<br />&nbsp;&nbsp; &nbsp; * @return<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public static int nextStr(char c,char[] cs,int begin){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//如果字符匹配和已经到了字符尾部青示已经全部匹配<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(cs[begin] == c &amp;&amp; begin == (cs.length-1) ){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return begin;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//如果字符匹配但没有到尾部需要继续下移<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}else if(cs[begin] == c){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return begin+1;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//完全没有匹配<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return -1;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}<br /><br />&nbsp;然后在main里面调用indexOf方法看到结果</div></div><img src ="http://www.blogjava.net/sundc/aggbug/399564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sundc/" target="_blank">青菜猫(孙宇)</a> 2013-05-21 16:11 <a href="http://www.blogjava.net/sundc/archive/2013/05/21/399564.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于seo的那些事，搜索引擎最佳化</title><link>http://www.blogjava.net/sundc/archive/2010/11/11/337793.html</link><dc:creator>青菜猫(孙宇)</dc:creator><author>青菜猫(孙宇)</author><pubDate>Thu, 11 Nov 2010 03:56:00 GMT</pubDate><guid>http://www.blogjava.net/sundc/archive/2010/11/11/337793.html</guid><wfw:comment>http://www.blogjava.net/sundc/comments/337793.html</wfw:comment><comments>http://www.blogjava.net/sundc/archive/2010/11/11/337793.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sundc/comments/commentRss/337793.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sundc/services/trackbacks/337793.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网页seo优化，搜索引擎优化&nbsp;&nbsp;<a href='http://www.blogjava.net/sundc/archive/2010/11/11/337793.html'>阅读全文</a><img src ="http://www.blogjava.net/sundc/aggbug/337793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sundc/" target="_blank">青菜猫(孙宇)</a> 2010-11-11 11:56 <a href="http://www.blogjava.net/sundc/archive/2010/11/11/337793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle数据库换系统后恢复以前oracle数据操作方法</title><link>http://www.blogjava.net/sundc/archive/2010/09/14/331984.html</link><dc:creator>青菜猫(孙宇)</dc:creator><author>青菜猫(孙宇)</author><pubDate>Tue, 14 Sep 2010 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/sundc/archive/2010/09/14/331984.html</guid><wfw:comment>http://www.blogjava.net/sundc/comments/331984.html</wfw:comment><comments>http://www.blogjava.net/sundc/archive/2010/09/14/331984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sundc/comments/commentRss/331984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sundc/services/trackbacks/331984.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: oracle数据库换系统后恢复以前oracle数据操作方法&nbsp;&nbsp;<a href='http://www.blogjava.net/sundc/archive/2010/09/14/331984.html'>阅读全文</a><img src ="http://www.blogjava.net/sundc/aggbug/331984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sundc/" target="_blank">青菜猫(孙宇)</a> 2010-09-14 16:13 <a href="http://www.blogjava.net/sundc/archive/2010/09/14/331984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>淘宝SNS社区招聘</title><link>http://www.blogjava.net/sundc/archive/2010/05/27/321990.html</link><dc:creator>青菜猫(孙宇)</dc:creator><author>青菜猫(孙宇)</author><pubDate>Thu, 27 May 2010 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/sundc/archive/2010/05/27/321990.html</guid><wfw:comment>http://www.blogjava.net/sundc/comments/321990.html</wfw:comment><comments>http://www.blogjava.net/sundc/archive/2010/05/27/321990.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/sundc/comments/commentRss/321990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sundc/services/trackbacks/321990.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 淘宝SNS社区招聘,职位名称：系统架构师,职位名称：资深Java工程师,职业发展方向.如技术、业务能力卓越，显示出过人才能，可专注于技术方向，提升为系统架构师，如辅导、管理能力出色，可提升为TechLeader。&nbsp;&nbsp;<a href='http://www.blogjava.net/sundc/archive/2010/05/27/321990.html'>阅读全文</a><img src ="http://www.blogjava.net/sundc/aggbug/321990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sundc/" target="_blank">青菜猫(孙宇)</a> 2010-05-27 10:51 <a href="http://www.blogjava.net/sundc/archive/2010/05/27/321990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>