锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国语精品自产拍在线观看,亚洲精品天天影视综合网,亚洲精品成人网久久久久久http://www.tkk7.com/renyangok/category/17011.htmlzh-cnSat, 15 Dec 2007 10:28:01 GMTSat, 15 Dec 2007 10:28:01 GMT60姹備袱涓暟鎴栧涓暟鐨勬渶澶у叕綰︽暟綆楁硶鍙?qiáng)鍏跺疄鐜?/title><link>http://www.tkk7.com/renyangok/archive/2007/12/15/167956.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Sat, 15 Dec 2007 07:40:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/12/15/167956.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/167956.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/12/15/167956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/167956.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/167956.html</trackback:ping><description><![CDATA[涓錛屼袱涓暟鐨勬渶澶у叕綰︽暟錛?br /> <br /> 1銆佹鍑犻噷寰風(fēng)畻娉?<br /> <p style="margin: 5px; line-height: 150%;"> <br /> 嬈у嚑閲屽痙綆楁硶鍙堢О杈楄漿鐩擱櫎娉曪紝鐢ㄤ簬璁$畻涓や釜鏁存暟a,b鐨勬渶澶у叕綰︽暟銆傚叾璁$畻鍘熺悊渚濊禆浜庝笅闈㈢殑瀹氱悊錛?<br /> <br /> 瀹氱悊錛歡cd(a,b) = gcd(b,a mod b) <br /> <br /> 璇佹槑錛歛鍙互琛ㄧず鎴恆 = kb + r錛屽垯r = a mod b <br /> 鍋囪d鏄痑,b鐨勪竴涓叕綰︽暟錛屽垯鏈?<br /> d|a, d|b錛岃宺 = a - kb錛屽洜姝|r <br /> 鍥犳d鏄?b,a mod b)鐨勫叕綰︽暟 <br /> <br /> 鍋囪d 鏄?b,a mod b)鐨勫叕綰︽暟錛屽垯 <br /> d | b , d |r 錛屼絾鏄痑 = kb +r <br /> 鍥犳d涔熸槸(a,b)鐨勫叕綰︽暟 <br /> <br /> 鍥犳(a,b)鍜?b,a mod b)鐨勫叕綰︽暟鏄竴鏍風(fēng)殑錛屽叾鏈澶у叕綰︽暟涔熷繀鐒剁浉絳夛紝寰楄瘉 <br /> <br /> 嬈у嚑閲屽痙綆楁硶灝辨槸鏍規(guī)嵁榪欎釜鍘熺悊鏉ュ仛鐨勶紝鍏剁畻娉曠敤C++璇█鎻忚堪涓猴細(xì)</p> <p style="margin: 5px; line-height: 150%;"><code><span style="color: #000000;"><font face="鏂板畫浣?><span style="color: #0000ff;">void</span> <span style="color: #ff0000;">swap</span><span style="color: #0000cc;">(</span><span style="color: #0000ff;">int</span> <span style="color: #0000cc;">&</span> a<span style="color: #0000cc;">,</span> <span style="color: #0000ff;">int</span> <span style="color: #0000cc;">&</span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />      <span style="color: #0000ff;">int</span> c <span style="color: #0000cc;">=</span> a<span style="color: #0000cc;">;</span> <br />        a <span style="color: #0000cc;">=</span> b<span style="color: #0000cc;">;</span> <br />        b <span style="color: #0000cc;">=</span> c<span style="color: #0000cc;">;</span> <br /> <span style="color: #0000cc;">}</span> <br /> <br /> <span style="color: #0000ff;">int</span> gcd<span style="color: #0000cc;">(</span><span style="color: #0000ff;">int</span> a<span style="color: #0000cc;">,</span><span style="color: #0000ff;">int</span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span>0 <span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span> a <span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />          <span style="color: #0000ff;">return</span> b<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000cc;">}</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span> 0 <span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />          <span style="color: #0000ff;">return</span> a<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000cc;">}</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span>a <span style="color: #0000cc;">></span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />          <span style="color: #ff0000;">swap</span><span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">,</span>b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">;</span> <br />      <span style="color: #0000cc;">}</span> <br />      <span style="color: #0000ff;">int</span> c<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000ff;">for</span><span style="color: #0000cc;">(</span>c <span style="color: #0000cc;">=</span> a <span style="color: #0000cc;">%</span> b <span style="color: #0000cc;">;</span> c <span style="color: #0000cc;">></span> 0 <span style="color: #0000cc;">;</span> c <span style="color: #0000cc;">=</span> a <span style="color: #0000cc;">%</span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />            a <span style="color: #0000cc;">=</span> b<span style="color: #0000cc;">;</span> <br />            b <span style="color: #0000cc;">=</span> c<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000cc;">}</span> <br />      <span style="color: #0000ff;">return</span> b<span style="color: #0000cc;">;</span> <br /> <span style="color: #0000cc;">}</span></font></span></code></p> <p style="margin: 5px; line-height: 150%;"> 2銆丼tein綆楁硶 <br /> 嬈у嚑閲屽痙綆楁硶鏄綆椾袱涓暟鏈澶у叕綰︽暟鐨勪紶緇熺畻娉曪紝瀹冩棤璁轟粠鐞嗚榪樻槸浠庢晥鐜囦笂閮芥槸寰堝ソ鐨勩備絾鏄湁涓涓嚧鍛界殑緙洪櫡錛岃繖涓己闄峰彧鏈夊湪澶х礌鏁版椂鎵嶄細(xì)鏄劇幇鍑烘潵銆?<br /> <br /> 鑰冭檻鐜板湪鐨勭‖浠跺鉤鍙幫紝涓鑸暣鏁版渶澶氫篃灝辨槸64浣嶏紝瀵逛簬榪欐牱鐨勬暣鏁幫紝璁$畻涓や釜鏁頒箣闂寸殑妯℃槸寰堢畝鍗曠殑銆傚浜庡瓧闀夸負(fù)32浣嶇殑騫沖彴錛岃綆椾袱涓笉瓚呰繃32浣嶇殑鏁存暟鐨? 妯★紝鍙渶瑕佷竴涓寚浠ゅ懆鏈燂紝鑰岃綆?4浣嶄互涓嬬殑鏁存暟妯★紝涔熶笉榪囧嚑涓懆鏈熻屽凡銆備絾鏄浜庢洿澶х殑绱犳暟錛岃繖鏍風(fēng)殑璁$畻榪囩▼灝變笉寰椾笉鐢辯敤鎴鋒潵璁捐錛屼負(fù)浜嗚綆椾袱涓秴榪? 64浣嶇殑鏁存暟鐨勬ā錛岀敤鎴蜂篃璁鎬笉寰椾笉閲囩敤綾諱技浜庡浣嶆暟闄ゆ硶鎵嬬畻榪囩▼涓殑璇曞晢娉曪紝榪欎釜榪囩▼涓嶄絾澶嶆潅錛岃屼笖娑堣椾簡寰堝CPU鏃墮棿銆傚浜庣幇浠e瘑鐮佺畻娉曪紝瑕佹眰璁$畻 128浣嶄互涓婄殑绱犳暟鐨勬儏鍐墊瘮姣旂殕鏄紝璁捐榪欐牱鐨勭▼搴忚揩鍒囧笇鏈涜兘澶熸姏寮冮櫎娉曞拰鍙栨ā銆?<br /> <br /> Stein綆楁硶鐢盝. Stein 1961騫存彁鍑猴紝榪欎釜鏂規(guī)硶涔熸槸璁$畻涓や釜鏁扮殑鏈澶у叕綰︽暟銆傚拰嬈у嚑閲屽痙綆楁硶 綆楁硶涓嶅悓鐨勬槸錛孲tein綆楁硶鍙湁鏁存暟鐨勭Щ浣嶅拰鍔犲噺娉曪紝榪欏浜庣▼搴忚璁¤呮槸涓涓闊熾?<br /> <br /> 涓轟簡璇存槑Stein綆楁硶鐨勬紜э紝棣栧厛蹇呴』娉ㄦ剰鍒頒互涓嬬粨璁猴細(xì) <br /> <br /> gcd(a,a) = a錛屼篃灝辨槸涓涓暟鍜屽畠鑷韓鐨勫叕綰︽暟鏄叾鑷韓 <br /> gcd(ka,kb) = k gcd(a,b)錛屼篃灝辨槸鏈澶у叕綰︽暟榪愮畻鍜屽嶄箻榪愮畻鍙互浜ゆ崲錛岀壒孌婄殑錛屽綋k=2鏃訛紝璇存槑涓や釜鍋舵暟鐨勬渶澶у叕綰︽暟蹇呯劧鑳借2鏁撮櫎 <br /> <br /> C++/java 瀹炵幇 <br /> <code><span style="color: #000000;"><font face="鏂板畫浣?></font></span></code></p> <p style="margin: 5px; line-height: 150%;"><code><span style="color: #000000;"><font face="鏂板畫浣?><span style="color: #ff9900;">// c++/java stein 綆楁硶 <br /> </span><span style="color: #0000ff;">int</span> gcd<span style="color: #0000cc;">(</span><span style="color: #0000ff;">int</span> a<span style="color: #0000cc;">,</span><span style="color: #0000ff;">int</span> b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span>a<span style="color: #0000cc;"><</span>b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">{</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">//arrange so that a>b <br /> </span>         <span style="color: #0000ff;">int</span> temp <span style="color: #0000cc;">=</span> a<span style="color: #0000cc;">;</span> <br />            a <span style="color: #0000cc;">=</span> b<span style="color: #0000cc;">;</span> <br />            b<span style="color: #0000cc;">=</span>temp<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000cc;">}</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span>0<span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span>b<span style="color: #0000cc;">)</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">//the base case <br /> </span>        <span style="color: #0000ff;">return</span> a<span style="color: #0000cc;">;</span> <br />      <span style="color: #0000ff;">if</span><span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">%</span>2<span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span>0 <span style="color: #0000cc;">&</span><span style="color: #0000cc;">&</span> b<span style="color: #0000cc;">%</span>2 <span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span>0<span style="color: #0000cc;">)</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">//a and b are even <br /> </span>         <span style="color: #0000ff;">return</span> 2<span style="color: #0000cc;">*</span>gcd<span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">,</span>b<span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">)</span><span style="color: #0000cc;">;</span> <br />      <span style="color: #0000ff;">if</span> <span style="color: #0000cc;">(</span> a<span style="color: #0000cc;">%</span>2 <span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span> 0<span style="color: #0000cc;">)</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">// only a is even <br /> </span>         <span style="color: #0000ff;">return</span> gcd<span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">,</span>b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">;</span> <br />      <span style="color: #0000ff;">if</span> <span style="color: #0000cc;">(</span> b<span style="color: #0000cc;">%</span>2<span style="color: #0000cc;">=</span><span style="color: #0000cc;">=</span>0 <span style="color: #0000cc;">)</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">// only b is even <br /> </span>         <span style="color: #0000ff;">return</span> gcd<span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">,</span>b<span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">)</span><span style="color: #0000cc;">;</span> <br />      <span style="color: #0000ff;">return</span> gcd<span style="color: #0000cc;">(</span><span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">+</span>b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">,</span><span style="color: #0000cc;">(</span>a<span style="color: #0000cc;">-</span>b<span style="color: #0000cc;">)</span><span style="color: #0000cc;">/</span>2<span style="color: #0000cc;">)</span><span style="color: #0000cc;">;</span></font><font face="鏂板畫浣?><span style="color: #ff9900;">// a and b are odd <br /> </span><span style="color: #0000cc;">}</span></font></span></code></p> 浜岋紝澶氫釜鏁扮殑鏈澶у叕綰︽暟錛?python瀹炵幇錛氬彇鍑烘暟緇刟涓渶灝忕殑錛屼粠2鍒版渶灝忕殑寰幆錛屾壘鍑哄叾涓渶澶х殑鑳借鏁扮粍涓墍鏈夋暟鏁撮櫎鐨勯偅涓暟錛屽氨鏄渶澶у叕綰︽暟)<br /> def gcd(a):<br />     a.sort()<br />     min = a[0]<br />     result = 1<br />     for i in range(2, min+1):<br />         flag = True<br />         for j in a:<br />             if j % i != 0:<br />                 flag = False<br />         if flag == True:<br />             result = i<br />     return result<br /> <img src ="http://www.tkk7.com/renyangok/aggbug/167956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-12-15 15:40 <a href="http://www.tkk7.com/renyangok/archive/2007/12/15/167956.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緇勫悎鏁板錛岰atalan鏁?/title><link>http://www.tkk7.com/renyangok/archive/2007/11/16/161089.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Fri, 16 Nov 2007 10:07:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/11/16/161089.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/161089.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/11/16/161089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/161089.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/161089.html</trackback:ping><description><![CDATA[Catalan鏁幫細(xì)(for http://acm.pku.edu.cn/JudgeOnline/problem?id=2084)<br /> <br /> C_n = ΣC_i*C_(n-i)錛屽叾涓?≤i<n錛?br /> C_n = C(2n,n) / (n+1)錛?鍏朵腑C(2n, n) 琛ㄧず緇勫悎鏁幫紝鍏紡涓猴細(xì)C(n, k) = n! / (k!(n-k)!)<br /> C_n=C_(n-1)*(4n-2)/(n+1)銆?br /> <br /> 瀹冪殑鎰忎箟鏈夊緢澶氾紝渚嬪錛歯+1杈瑰艦鐢ㄥ瑙掔嚎鍒掑垎鎴? 涓夎褰㈢殑鏂規(guī)硶鏁幫紱n涓?1鍜宯涓?1婊¤凍鎵鏈夐儴鍒嗗拰涓嶅皬浜庨浂鐨勬帓鍒楁暟錛涘叿鏈塶涓妭鐐圭殑浜屽弶鏍?wèi)鐨勬暟閲?#8230;…<br /> <br /> 錛堣緇嗚鏄庡弬鑰冿細(xì)http://hi.baidu.com/kikoqiu/blog/item/81d792015ab13e01738da51d.html錛?br /> <img src ="http://www.tkk7.com/renyangok/aggbug/161089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-11-16 18:07 <a href="http://www.tkk7.com/renyangok/archive/2007/11/16/161089.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java鐢ㄥ瓧鑺傛暟鎴彇瀛楃涓?/title><link>http://www.tkk7.com/renyangok/archive/2007/03/06/102213.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Tue, 06 Mar 2007 09:17:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/03/06/102213.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/102213.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/03/06/102213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/102213.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/102213.html</trackback:ping><description><![CDATA[ <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img id="Codehighlighter1_0_230_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_230_Open_Text.style.display='none'; Codehighlighter1_0_230_Closed_Image.style.display='inline'; Codehighlighter1_0_230_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_0_230_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_230_Closed_Text.style.display='none'; Codehighlighter1_0_230_Open_Image.style.display='inline'; Codehighlighter1_0_230_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> <span id="Codehighlighter1_0_230_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span> <span id="Codehighlighter1_0_230_Open_Text"> <span style="COLOR: #008000">/*</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽棰樼洰錛?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽緙栧啓涓涓埅鍙栧瓧絎︿覆鐨勫嚱鏁幫紝杈撳叆涓轟竴涓瓧絎︿覆鍜屽瓧鑺傛暟錛岃緭鍑轟負(fù)鎸夊瓧鑺傛埅鍙栫殑瀛楃涓層偮犱絾鏄淇濊瘉姹夊瓧涓嶈鎴崐涓紝濡傗滄垜ABC鈥?錛屽簲璇ユ埅涓衡滄垜AB鈥濓紝杈撳叆鈥滄垜ABC姹塂EF鈥濓紝6錛屽簲璇ヨ緭鍑轟負(fù)鈥滄垜ABC鈥濊屼笉鏄滄垜ABC+姹夌殑鍗婁釜鈥濄偮?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽瑙i噴錛?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽姝ゅ鐨勭紪鐮佹柟寮忓簲璇ユ槸鎿嶄綔緋葷粺榛樿鐨凣B緙栫爜錛屽嵆姹夊瓧鍗?涓瓧鑺備笖絎竴涓瓧鑺傜殑鏈楂樹綅鏄?錛?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽濡傛灉鐞嗚В涓烘湁絎﹀彿鏁扮殑璇濓紝灝辨槸璐熸暟錛涜岃嫳鏂囧崰1涓瓧鑺傦紝絎﹀悎ASC2鐮併?br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽</span> <span style="COLOR: #008000">*/</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽SplitString聽<br /><img id="Codehighlighter1_251_822_Open_Image" onclick="this.style.display='none'; Codehighlighter1_251_822_Open_Text.style.display='none'; Codehighlighter1_251_822_Closed_Image.style.display='inline'; Codehighlighter1_251_822_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_251_822_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_251_822_Closed_Text.style.display='none'; Codehighlighter1_251_822_Open_Image.style.display='inline'; Codehighlighter1_251_822_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_251_822_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_251_822_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">聽String聽str;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">private</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽byteNum;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_318_319_Open_Image" onclick="this.style.display='none'; Codehighlighter1_318_319_Open_Text.style.display='none'; Codehighlighter1_318_319_Closed_Image.style.display='inline'; Codehighlighter1_318_319_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_318_319_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_318_319_Closed_Text.style.display='none'; Codehighlighter1_318_319_Open_Image.style.display='inline'; Codehighlighter1_318_319_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽SplitString()</span> <span id="Codehighlighter1_318_319_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_318_319_Open_Text"> <span style="COLOR: #000000">{}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽SplitString(String聽str,</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽byteNum)<br /><img id="Codehighlighter1_367_411_Open_Image" onclick="this.style.display='none'; Codehighlighter1_367_411_Open_Text.style.display='none'; Codehighlighter1_367_411_Closed_Image.style.display='inline'; Codehighlighter1_367_411_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_367_411_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_367_411_Closed_Text.style.display='none'; Codehighlighter1_367_411_Open_Image.style.display='inline'; Codehighlighter1_367_411_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span id="Codehighlighter1_367_411_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_367_411_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.str</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">str;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.byteNum</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">byteNum;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽splitIt()<br /><img id="Codehighlighter1_439_820_Open_Image" onclick="this.style.display='none'; Codehighlighter1_439_820_Open_Text.style.display='none'; Codehighlighter1_439_820_Closed_Image.style.display='inline'; Codehighlighter1_439_820_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_439_820_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_439_820_Closed_Text.style.display='none'; Codehighlighter1_439_820_Open_Image.style.display='inline'; Codehighlighter1_439_820_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span id="Codehighlighter1_439_820_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_439_820_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">byte</span> <span style="COLOR: #000000">聽bt[]</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">str.getBytes();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽System.out.println(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">Length聽of聽this聽String聽===></span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">bt.length);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(byteNum</span> <span style="COLOR: #000000">>=</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">)<br /><img id="Codehighlighter1_551_760_Open_Image" onclick="this.style.display='none'; Codehighlighter1_551_760_Open_Text.style.display='none'; Codehighlighter1_551_760_Closed_Image.style.display='inline'; Codehighlighter1_551_760_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_551_760_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_551_760_Closed_Text.style.display='none'; Codehighlighter1_551_760_Open_Image.style.display='inline'; Codehighlighter1_551_760_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span id="Codehighlighter1_551_760_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_551_760_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(bt[byteNum]</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">)<br /><img id="Codehighlighter1_577_662_Open_Image" onclick="this.style.display='none'; Codehighlighter1_577_662_Open_Text.style.display='none'; Codehighlighter1_577_662_Closed_Image.style.display='inline'; Codehighlighter1_577_662_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_577_662_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_577_662_Closed_Text.style.display='none'; Codehighlighter1_577_662_Open_Image.style.display='inline'; Codehighlighter1_577_662_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽</span> <span id="Codehighlighter1_577_662_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_577_662_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽String聽substrx</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽String(bt,</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">--</span> <span style="COLOR: #000000">byteNum);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽System.out.println(substrx);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_671_756_Open_Image" onclick="this.style.display='none'; Codehighlighter1_671_756_Open_Text.style.display='none'; Codehighlighter1_671_756_Closed_Image.style.display='inline'; Codehighlighter1_671_756_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_671_756_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_671_756_Closed_Text.style.display='none'; Codehighlighter1_671_756_Open_Image.style.display='inline'; Codehighlighter1_671_756_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽</span> <span id="Codehighlighter1_671_756_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_671_756_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽String聽substrex</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽String(bt,</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,byteNum);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽System.out.println(substrex);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_768_817_Open_Image" onclick="this.style.display='none'; Codehighlighter1_768_817_Open_Text.style.display='none'; Codehighlighter1_768_817_Closed_Image.style.display='inline'; Codehighlighter1_768_817_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_768_817_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_768_817_Closed_Text.style.display='none'; Codehighlighter1_768_817_Open_Image.style.display='inline'; Codehighlighter1_768_817_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span id="Codehighlighter1_768_817_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_768_817_Open_Text"> <span style="COLOR: #000000">{聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽System.out.println(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">杈撳叆閿欒錛侊紒錛佽杈撳叆澶т簬闆剁殑鏁存暟錛?/span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽TestSplitString<br /><img id="Codehighlighter1_854_1009_Open_Image" onclick="this.style.display='none'; Codehighlighter1_854_1009_Open_Text.style.display='none'; Codehighlighter1_854_1009_Closed_Image.style.display='inline'; Codehighlighter1_854_1009_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_854_1009_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_854_1009_Closed_Text.style.display='none'; Codehighlighter1_854_1009_Open_Image.style.display='inline'; Codehighlighter1_854_1009_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_854_1009_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_854_1009_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main(String聽args[])<br /><img id="Codehighlighter1_897_1007_Open_Image" onclick="this.style.display='none'; Codehighlighter1_897_1007_Open_Text.style.display='none'; Codehighlighter1_897_1007_Closed_Image.style.display='inline'; Codehighlighter1_897_1007_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_897_1007_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_897_1007_Closed_Text.style.display='none'; Codehighlighter1_897_1007_Open_Image.style.display='inline'; Codehighlighter1_897_1007_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span id="Codehighlighter1_897_1007_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_897_1007_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽String聽str</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">鎴慉BC姹塂EF</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽num</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">6</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽SplitString聽sptstr聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽SplitString(str,num);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽sptstr.splitIt();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <img src ="http://www.tkk7.com/renyangok/aggbug/102213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-03-06 17:17 <a href="http://www.tkk7.com/renyangok/archive/2007/03/06/102213.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java涓や釜瀛楃涓茬殑鏈澶у叕鍏辮嚜涓?/title><link>http://www.tkk7.com/renyangok/archive/2007/03/05/101934.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Mon, 05 Mar 2007 07:50:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/03/05/101934.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/101934.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/03/05/101934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/101934.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/101934.html</trackback:ping><description><![CDATA[ <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img id="Codehighlighter1_0_85_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_85_Open_Text.style.display='none'; Codehighlighter1_0_85_Closed_Image.style.display='inline'; Codehighlighter1_0_85_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_0_85_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_85_Closed_Text.style.display='none'; Codehighlighter1_0_85_Open_Image.style.display='inline'; Codehighlighter1_0_85_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> <span id="Codehighlighter1_0_85_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span> <span id="Codehighlighter1_0_85_Open_Text"> <span style="COLOR: #008000">/*</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽姹備袱涓瓧絎︿覆鐨勬渶澶у叕鍏卞瓙涓?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽String聽s1聽=聽"abcdefghigj";<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽String聽s2聽=聽"xyzabcdeigj";<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽鍒欒緭鍑篴bcde<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span> <span style="COLOR: #008000">*/</span> </span> <span style="COLOR: #000000">聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽Test<br /><img id="Codehighlighter1_106_627_Open_Image" onclick="this.style.display='none'; Codehighlighter1_106_627_Open_Text.style.display='none'; Codehighlighter1_106_627_Closed_Image.style.display='inline'; Codehighlighter1_106_627_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_106_627_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_106_627_Closed_Text.style.display='none'; Codehighlighter1_106_627_Open_Image.style.display='inline'; Codehighlighter1_106_627_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_106_627_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_106_627_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽String聽search(String聽s1,String聽s2)<br /><img id="Codehighlighter1_154_432_Open_Image" onclick="this.style.display='none'; Codehighlighter1_154_432_Open_Text.style.display='none'; Codehighlighter1_154_432_Closed_Image.style.display='inline'; Codehighlighter1_154_432_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_154_432_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_154_432_Closed_Text.style.display='none'; Codehighlighter1_154_432_Open_Image.style.display='inline'; Codehighlighter1_154_432_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span id="Codehighlighter1_154_432_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_154_432_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽String聽max聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">""</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;聽i聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽s1.length();聽i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)<br /><img id="Codehighlighter1_216_412_Open_Image" onclick="this.style.display='none'; Codehighlighter1_216_412_Open_Text.style.display='none'; Codehighlighter1_216_412_Closed_Image.style.display='inline'; Codehighlighter1_216_412_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_216_412_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_216_412_Closed_Text.style.display='none'; Codehighlighter1_216_412_Open_Image.style.display='inline'; Codehighlighter1_216_412_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span id="Codehighlighter1_216_412_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_216_412_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽j聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽i</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">;聽j聽</span> <span style="COLOR: #000000"><=</span> <span style="COLOR: #000000">聽s1.length();聽j</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)<br /><img id="Codehighlighter1_266_408_Open_Image" onclick="this.style.display='none'; Codehighlighter1_266_408_Open_Text.style.display='none'; Codehighlighter1_266_408_Closed_Image.style.display='inline'; Codehighlighter1_266_408_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_266_408_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_266_408_Closed_Text.style.display='none'; Codehighlighter1_266_408_Open_Image.style.display='inline'; Codehighlighter1_266_408_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽</span> <span id="Codehighlighter1_266_408_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_266_408_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽String聽sub聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽s1.substring(i,j);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">((s2.indexOf(sub)</span> <span style="COLOR: #000000">!=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">&&</span> <span style="COLOR: #000000">聽sub.length()聽</span> <span style="COLOR: #000000">></span> <span style="COLOR: #000000">聽max.length())<br /><img id="Codehighlighter1_375_402_Open_Image" onclick="this.style.display='none'; Codehighlighter1_375_402_Open_Text.style.display='none'; Codehighlighter1_375_402_Closed_Image.style.display='inline'; Codehighlighter1_375_402_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_375_402_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_375_402_Closed_Text.style.display='none'; Codehighlighter1_375_402_Open_Image.style.display='inline'; Codehighlighter1_375_402_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽</span> <span id="Codehighlighter1_375_402_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_375_402_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽max聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽sub;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000">聽聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽max;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main(String[]聽args)<br /><img id="Codehighlighter1_480_625_Open_Image" onclick="this.style.display='none'; Codehighlighter1_480_625_Open_Text.style.display='none'; Codehighlighter1_480_625_Closed_Image.style.display='inline'; Codehighlighter1_480_625_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_480_625_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_480_625_Closed_Text.style.display='none'; Codehighlighter1_480_625_Open_Image.style.display='inline'; Codehighlighter1_480_625_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span id="Codehighlighter1_480_625_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_480_625_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽String聽s1聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">abedafghigj</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽String聽s2聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">xyzabfddfigj</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽String聽output聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽Test().search(s1,s2);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽System.out.println(output);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <img src ="http://www.tkk7.com/renyangok/aggbug/101934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-03-05 15:50 <a href="http://www.tkk7.com/renyangok/archive/2007/03/05/101934.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛楃涓插尮閰?/title><link>http://www.tkk7.com/renyangok/archive/2007/03/05/101927.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Mon, 05 Mar 2007 07:29:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/03/05/101927.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/101927.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/03/05/101927.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/101927.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/101927.html</trackback:ping><description><![CDATA[ <h1>1 鏈瀹氫箟</h1> <p>鍦ㄥ瓧絎︿覆鍖歸厤闂涓紝鎴戜滑鏈熷緟瀵熺湅涓睺涓槸鍚﹀惈鏈変覆P銆?br />鍏朵腑涓睺琚О涓虹洰鏍囦覆錛屼覆S琚О涓烘ā寮忎覆銆?/p> <h1>2 鏈寸礌鍖歸厤綆楁硶</h1> <p>榪涜瀛楃涓插尮閰嶏紝鏈綆鍗曠殑涓涓兂娉曟槸錛?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img id="Codehighlighter1_25_607_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_607_Open_Text.style.display='none'; Codehighlighter1_25_607_Closed_Image.style.display='inline'; Codehighlighter1_25_607_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_25_607_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_25_607_Closed_Text.style.display='none'; Codehighlighter1_25_607_Open_Image.style.display='inline'; Codehighlighter1_25_607_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽SimpleMatch聽</span> <span id="Codehighlighter1_25_607_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_25_607_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_81_424_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_424_Open_Text.style.display='none'; Codehighlighter1_81_424_Closed_Image.style.display='inline'; Codehighlighter1_81_424_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_81_424_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_81_424_Closed_Text.style.display='none'; Codehighlighter1_81_424_Open_Image.style.display='inline'; Codehighlighter1_81_424_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽StringMatch(String聽target,String聽patten)聽</span> <span id="Codehighlighter1_81_424_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_81_424_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽tl聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽target.length();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽pl聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽patten.length();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽j聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;<br /><img id="Codehighlighter1_216_365_Open_Image" onclick="this.style.display='none'; Codehighlighter1_216_365_Open_Text.style.display='none'; Codehighlighter1_216_365_Closed_Image.style.display='inline'; Codehighlighter1_216_365_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_216_365_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_216_365_Closed_Text.style.display='none'; Codehighlighter1_216_365_Open_Image.style.display='inline'; Codehighlighter1_216_365_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">while</span> <span style="COLOR: #000000">(i聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽tl聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">聽pl聽</span> <span style="COLOR: #000000">&&</span> <span style="COLOR: #000000">聽j聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽pl)聽</span> <span id="Codehighlighter1_216_365_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_216_365_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(patten.charAt(j)聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽target.charAt(i</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">j))<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽j</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">;<br /><img id="Codehighlighter1_305_357_Open_Image" onclick="this.style.display='none'; Codehighlighter1_305_357_Open_Text.style.display='none'; Codehighlighter1_305_357_Closed_Image.style.display='inline'; Codehighlighter1_305_357_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_305_357_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_305_357_Closed_Text.style.display='none'; Codehighlighter1_305_357_Open_Image.style.display='inline'; Codehighlighter1_305_357_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_305_357_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_305_357_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽j聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(j聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽pl)<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽i;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽<br /><img id="Codehighlighter1_469_605_Open_Image" onclick="this.style.display='none'; Codehighlighter1_469_605_Open_Text.style.display='none'; Codehighlighter1_469_605_Closed_Image.style.display='inline'; Codehighlighter1_469_605_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_469_605_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_469_605_Closed_Text.style.display='none'; Codehighlighter1_469_605_Open_Image.style.display='inline'; Codehighlighter1_469_605_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main(String[]聽args)</span> <span id="Codehighlighter1_469_605_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_469_605_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽String聽t聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">123456789</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽String聽p聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">456</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽SimpleMatch聽sm聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽SimpleMatch();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽System.out.println(sm.StringMatch(t,聽p));<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <p>鍙互鐪嬭錛岃繖涓畻娉曪紙鍋囧畾m>>n錛夌殑澶嶆潅搴︽槸O(mn)錛屽叾涓璵鏄疶鐨勯暱搴︼紝n鏄疨鐨勯暱搴︺傝繖縐嶇畻娉曠殑緙洪櫡鏄尮閰嶈繃紼嬩腑甯︽湁鍥炴函鈥斺斿噯紜湴璇存槸T涓插瓨鍦ㄥ洖婧紝涔熷氨鏄綋鍖歸厤涓嶆垚鍔熺殑鏃跺欙紝涔嬪墠榪涜鐨勫尮閰嶅畬鍏ㄥ彉涓烘棤鐢ㄥ姛錛屾墍鏈夌殑姣旇緝闇瑕侀噸鏂板紑濮嬨?/p> <h1>3 KMP綆楁硶</h1> <p>KMP綆楁硶鏄疍.E.Knuth銆丣.H.Morris鍜孷.R.Pratt鎻愬嚭鐨勬棤鍥炴函鐨勫瓧絎︿覆鍖歸厤綆楁硶錛岀畻娉曠殑鏍稿績鎬濇兂灝辨槸璁炬硶鍦ㄥ尮閰嶅け璐ョ殑鏃跺欙紝灝介噺鍒╃敤涔嬪墠鐨勫尮閰嶇粨鏋滐紝娑堥櫎T涓茬殑鍥炴函闂銆傞偅涔堝浣曟秷闄ゅ洖婧憿錛熻鐪嬩笅闈㈢殑渚嬪瓙錛?/p> <p>鍋囪P=abacd錛屽鏋淭=abax...錛屽綋浠庡ご寮濮嬪尮閰嶅埌瀛楃c鏃訛紝鑻=x錛屾樉鐒訛紝鍖歸厤榪囩▼緇х畫錛涘綋c鈮爔鏃訛紝鎸夌収鏈寸礌鐨勫尮閰嶇畻娉曪紝T涓蹭細(xì)鍙戠敓鍥炴函錛屼箣鍚嶵涓蹭細(xì)浠庣2涓瓧絎寮濮嬮噸鏂板尮閰嶏紝鑰屼笉鏄粠鍖歸厤澶辮觸鐨勫瓧絎寮濮嬬戶緇備絾鏄樉鐒訛紝瀵逛簬涓婅堪鐨勫尮閰嶈繃紼嬶紝T涓蹭笉闇瑕佷粠b寮濮嬮噸鏂板尮閰嶏紝瀹冨彧闇瑕佷粠x寮濮嬪拰P鐨刡瀛楃緇х畫鍖歸厤鍗沖彲銆傚涓嬶細(xì)<br />鍖歸厤榪囩▼錛?br />P=abacd<br />T=abax....<br />聽聽聽聽 ^----姣旇緝鍒版澶勬椂鍙戠敓鍖歸厤澶辮觸<br />鏈寸礌鍖歸厤綆楁硶錛?br />P= abacd<br />T=abax...<br />聽聽 ^----鍥炴函鍒癰錛岄噸鏂板紑濮嬪拰P鐨勫尮閰?br />KMP綆楁硶錛?br />P=聽 abacd<br />T=abax...<br />聽聽聽聽 ^----T涓蹭笉鍥炴函錛屼粠x澶勭戶緇尮閰?/p> <p>鐜板湪鐨勯棶棰樻槸錛屾寜鐓MP綆楁硶錛屽尮閰嶅け璐ョ殑鏃跺欙紝P涓查渶瑕侀噸鏂拌皟鏁翠綅緗紝浣嗘槸璋冩暣鐨勪緷鎹槸浠涔堬紵Knuth絳変漢鍙戠幇錛孭璋冩暣浣嶇疆鐨勪緷鎹拰P鐨勬瀯閫犳湁鍏籌紝鍜孴鏃犲叧銆傚叿浣撴潵璇達(dá)紝瀹氫箟澶辨晥鍑芥暟錛歠(j)=k錛屽叾涓?<=k<=j錛屼笖k鏄嬌寰梡<sub>0</sub>p<sub>1</sub>...p<sub>k-1</sub> = p<sub>j-k+1</sub>p<sub>j-k+2</sub>...p<sub>j</sub>鎴愮珛鐨勬渶澶ф暣鏁般傚緩绔嬪け鏁堝嚱鏁扮殑綆楁硶濡備笅錛?br />public void Build() {<br />聽if(pattern == null)<br />聽聽throw new Exception("KMP Exception : null pattern");<br />聽array = new int[pattern.Length];<br />聽int i = 0, s = pattern.Length;<br />聽if(s > 1)<br />聽聽array[0] = 0;<br />聽for(i = 1; i < s; i++) {<br />聽聽if(pattern[i] == pattern[array[i - 1]])<br />聽聽聽array[i] = array[i - 1] + 1;<br />聽聽else<br />聽聽聽array[i] = 0;<br />聽}<br />}</p> <p>鍖歸厤榪囩▼濡備笅錛?br />public int Match(String target, int start) {<br />聽if(array == null || pattern == null || target == null)<br />聽聽return -1;<br />聽int target_index = start;<br />聽int pattern_index = 0;<br />聽int token_length = target.Length;<br />聽int pattern_length = pattern.Length;<br />聽while(target_index < token_length && pattern_index < pattern_length) {<br />聽聽if(target[target_index] == pattern[pattern_index]) {<br />聽聽聽target_index++;<br />聽聽聽pattern_index++;<br />聽聽} else {<br />聽聽聽if(pattern_index == begin)<br />聽聽聽聽target_index++;<br />聽聽聽else<br />聽聽聽聽pattern_index = array[pattern_index - 1];<br />聽聽}<br />聽}<br />聽if(pattern_index == pattern_length)<br />聽聽return target_index - pattern_length;<br />聽return -1;<br />}</p> <h1>4 鏀寔閫氶厤絎?鍜?鐨凨MP綆楁硶</h1> <p>KMP綆楁硶铏界劧鑳藉榪涜瀛楃涓插尮閰嶏紝浣嗘槸錛屽湪瀹炶返涓瓧絎︿覆鍖歸厤寰寰榪樿鏀寔閫氶厤絎︼紝MS緋葷粺涓渶甯歌鐨勯氶厤絎︽槸?鍜?銆傚叾涓紝?鍙互浠h〃涓涓瓧絎︼紙涓嶈兘娌℃湁錛夛紝*鍙互浠h〃浠繪剰澶氫釜瀛楃錛堝彲浠ヤ負(fù)絀猴級銆傜粡鍏哥殑KMP綆楁硶閽堝閫氶厤絎︽槸鏃犺兘涓哄姏鐨勶紝浣嗘槸緇忚繃綆鍗曠殑鏀歸狅紝KMP綆楁硶涔熷彲浠ヨ瘑鍒氶厤絎︺?/p> <p>棣栧厛鏄?錛屾牴鎹?鐨勫姛鑳斤紝?琛ㄧず浠繪剰瀛楃錛屼篃灝辨槸璇村湪鍖歸厤榪囩▼涓紝?姘歌繙鍖歸厤鎴愬姛銆傚洜姝ゅ鍖歸厤鍑芥暟鐨勪慨鏀瑰崄鍒嗙畝鍗曪細(xì)<br />...<br />聽while(target_index < token_length && pattern_index < pattern_length) {<br />聽聽if(target[target_index] == pattern[pattern_index]|| pattern[pattern_index] == '?') {<br />聽聽聽target_index++;<br />聽聽聽pattern_index++;<br />聽聽} else {<br />...<br />寤虹珛澶辨晥鍑芥暟鐨勮繃紼嬪拰鍖歸厤榪囩▼綾諱技錛屼慨鏀瑰涓嬶細(xì)<br />...<br />聽for(i = 1; i < s; i++) {<br />聽聽if(pattern[i] == pattern[array[i - 1]]|| pattern[i] == '?' || pattern[array[i - 1]] == '?')<br />聽聽聽array[i] = array[i - 1] + 1;<br />...</p> <p>鏈川涓婏紝?騫舵病鏈変慨鏀圭畻娉曪紝鑰屼粎浠呬慨鏀逛簡鍖歸厤瑙勫垯鈥斺旈亣鍒?鍒欎竴瀹氬尮閰嶃傜劧鑰?涓庢涓嶅悓錛?鐨勪綔鐢ㄦ槸鍖歸厤浠繪剰澶氫釜瀛楃錛屾樉鐒舵垜浠笉鑳界畝鍗曠殑淇敼鍖歸厤榪囩▼鑰屾弧瓚寵姹傘傚鏋滄垜浠噸鏂版濊?鐨勪綔鐢紝鎴戜滑浼?xì)鍙戠?鐨勫彟涓涓綔鐢ㄥ氨鏄垎鍓睵涓詫紝鍗沖鏋淧=P<sub>1</sub>*P<sub>2</sub>錛岄偅涔堜笌鍏惰*浠h〃鍖歸厤浠繪剰澶氫釜瀛楃錛屼笉濡傝P鐨勫尮閰嶆潯浠舵槸鍦ㄥ尮閰峆<sub>1</sub>瀛愪覆鍚庡啀鍖歸厤P<sub>2</sub>瀛愪覆銆?/p> <p>鐜板湪鍥為【澶辨晥鍑芥暟鐨勪綔鐢紝濡傛灉褰撳尮閰嶅埌P鐨刯+1浣嶆椂鍖歸厤澶辮觸錛岄偅涔堥噸鏂板紑濮嬪尮閰嶇殑鏃跺欙紝P涓茬殑浣嶇疆璋冩暣鍒癴(j)浣嶏紝鐩村埌P涓茬殑浣嶇疆璋冩暣鍒?錛屽垯鍖歸厤閲嶆柊寮濮嬨備絾褰揚(yáng)=P<sub>1</sub>*P<sub>2</sub>錛屽亣濡侾<sub>1</sub>宸茬粡鍖歸厤鎴愬姛錛岃屽湪P<sub>2</sub>涓彂鐢熷尮閰嶅け璐ワ紝閭d箞P涓茶闇瑕佽皟鏁翠綅緗紝浣哖涓叉棤璁哄浣曡皟鏁達(dá)紝姝ゆ椂涔熶笉搴旇璋冩暣鍒?錛屾渶澶氳皟鏁村埌P<sub>2</sub>鐨勫紑濮嬪錛屽洜涓篜<sub>1</sub>宸茬粡鍖歸厤錛屽彧闇鍖歸厤P<sub>2</sub>鍗沖彲銆傚亣濡侾=abcab*abcab錛屽け鏁堝嚱鏁板簲璇ユ槸錛堟敞鎰忎箣鍓嶆彁鍒?鐨勪綔鐢級錛?br />a b c a b * a b c a b<br />0 0 0 1 2 - 6 6 6 7 8</p> <p>鍥犳錛岃鎯寵KMP鏀寔*錛岄偅涔堝叧閿槸瑕侀噸鏂拌璁″け鏁堝嚱鏁扮殑寤虹珛綆楁硶錛屽涓嬶細(xì)<br />public void Build() {<br />聽if(pattern == null)<br />聽聽throw new Exception("KMP Exception : null pattern");<br />聽array = new int[pattern.Length];<br />聽int i = 0, s = pattern.Length;<br />聽if(s > 1)<br />聽聽array[0] = 0;<br />聽int begin = 0;<br />聽for(i = 1; i < s; i++) {<br />聽聽if(pattern[i] == '*') {<br />聽聽聽array[i] = i;<br />聽聽聽begin = i + 1;<br />聽聽} else if(pattern[i] == pattern[array[i - 1]] || pattern[i] == '?' || pattern[array[i - 1]] == '?')<br />聽聽聽array[i] = array[i - 1] + 1;<br />聽聽else<br />聽聽聽array[i] = begin;<br />聽}<br />}聽</p> <p>綆楁硶涓璪egin琛ㄧず姣忔瀛楃涓茬殑寮濮嬩綅緗傛澶栵紝鍖歸厤榪囩▼涔熷簲璇ヨ繘琛岀浉搴旂殑淇敼錛屽洜涓哄瓧絎?瀵逛簬鍖歸厤娌℃湁浠諱綍甯姪錛屽畠灞炰簬鍗犱綅絎︼紝鍥犳闇瑕佽煩榪囷紝鍖歸厤綆楁硶濡備笅錛?br />public int Match(String target, int start) {<br />聽if(array == null || pattern == null || target == null)<br />聽聽return -1;<br />聽int target_index = start;<br />聽int pattern_index = 0;<br />聽int token_length = target.Length;<br />聽int pattern_length = pattern.Length;<br />聽int begin = 0;<br />聽while(target_index < token_length && pattern_index < pattern_length) {<br />聽聽if(pattern[pattern_index] == '*') {<br />聽聽聽begin = pattern_index + 1;<br />聽聽聽pattern_index++;<br />聽聽} else if(target[target_index] == pattern[pattern_index] || pattern[pattern_index] == '?') {<br />聽聽聽target_index++;<br />聽聽聽pattern_index++;<br />聽聽} else {<br />聽聽聽if(pattern_index == begin)<br />聽聽聽聽target_index++;<br />聽聽聽else<br />聽聽聽聽pattern_index = array[pattern_index - 1];<br />聽聽}<br />聽}<br />聽if(pattern_index == pattern_length)<br />聽聽return target_index - pattern_length + begin;<br />聽return -1;<br />}</p> <h1>5 姝e垯璇█鍜岀‘瀹氱姸鎬佽嚜鍔ㄦ満</h1> <p>涓涓暟瀛楅昏緫鐨勯棶棰橈細(xì)璁捐涓涓瘑鍒?1011鐨勭數(shù)璺紝瑙h繖涓棶棰樼殑鍏抽敭灝辨槸璁捐鍑鴻繖涓數(shù)璺殑DFA錛屽涓嬶細(xì)<br /><img style="CURSOR: pointer" onclick="javascript:window.open(this.src);" src="http://www.blog.edu.cn/UploadFiles/2006-8/823915044.png" onload="javascript:if(this.width>500){this.resized=true;this.style.width=500;}" /></p> <p>浠旂粏鐪嬬湅榪欎釜鐘舵佹満錛屾槸涓嶆槸鍜孠MP鐨勭畻娉曟湁鍑犲垎綾諱技鍛紵榪欏茍涓嶆槸宸у悎錛屽洜涓篕MP綆楁硶涓殑澶辨晥鍑芥暟鎬誨彲浠ョ瓑浠風(fēng)殑杞寲涓轟竴涓狣FA銆傚綋鐒禟MP鐨凞FA榪滄瘮璇嗗埆11011鐨凞FA瑕佸鏉傦紝鍘熷洜鍦ㄤ簬KMP鎺ュ彈鐨勮緭鍏ユ槸鍏ㄤ綋瀛楃闆嗗悎錛岃瘑鍒?1011鐨凞FA鍙帴鍙?鍜?榪欎袱涓緭鍏ャ傛垜浠煡閬擄紝涓涓鍒欒璦鍜屼竴涓狣FA鏄瓑浠風(fēng)殑錛岃孠MP璁$畻澶辨晥鍑芥暟鐨勭畻娉曪紝瀹為檯涓婄瓑浠蜂簬姹侱FA鐨勮繃紼嬶紝f(j)鐨勫煎疄闄呬笂琛ㄦ槑鐘舵乯+1鎺ュ彈鍒頒笉姝g‘鐨勫瓧絎︽椂搴旇鍥炴函鍒扮殑鐘舵侊紙娉ㄦ剰姝ゆ椂杈撳叆嫻佸茍娌℃湁鍓嶈繘錛夈傛櫘閫氱殑瀛楃涓查兘鑳界湅鎴愭槸涓涓鍒欒璦錛屽惈鏈夐氶厤絎?鍜?鐨勫瓧絎︿覆涔熷彲浠ョ瓑浠風(fēng)殑杞崲涓轟竴涓鍒欒〃杈懼紡銆備絾鏄紝姝e垯璇█鐨勯泦鍚堣繙姣擪MP綆楁硶鎵鑳芥敮鎸佺殑妯″紡闆嗗悎鐨勬洿澶э紝鏈熼棿鍘熷洜榪樻槸鍒氭墠鎻愯繃鐨勮緭鍏ラ棶棰樸傝瘯鎯砅=p<sub>1</sub>p<sub>2</sub>...p<sub>n</sub>錛屽綋鍖歸厤鍒皃<sub>j</sub>鐨勬椂鍊欙紝濡傛灉涓嬩竴涓緭鍏ュ瓧絎︽鏄痯<sub>j</sub>錛岄偅涔堢姸鎬佹満榪涘叆涓嬩竴涓姸鎬侊紝濡傛灉涓嶆槸p<sub>j</sub>錛岄偅涔堢姸鎬佹満鎸夌収瀹炴晥鍑芥暟鐨勬寚紺鴻漿縐誨埌鐘舵乫(j-1)錛屼篃灝辨槸璇碖MP鐘舵佹満鐨勬瘡涓姸鎬佸彧鑳芥牴鎹緭鍏ユ槸鍚︿負(fù)p<sub>j</sub>鏉ヨ繘琛岃漿縐匯傝屾鍒欒〃杈懼紡鎵瀵瑰簲鐨勭姸鎬佹満鍒欐湁鎵涓嶅悓錛屽鏋滄鍒欒璦L=l<sub>1</sub>l<sub>2</sub>...l<sub>n</sub>錛屽亣璁捐繖浜涢兘鏄瓧姣嶏紝褰撳尮閰嶅埌l(fā)<sub>j</sub>浣嶇殑鏃跺欙紝濡傛灉涓嬩竴涓緭鍏ュ瓧絎︽鏄痩<sub>j</sub>錛岄偅涔堢姸鎬佹満榪涘叆涓嬩竴涓姸鎬侊紝鍚﹀垯瀹冭繕鍙互鏍規(guī)嵁杈撳叆鐨勫艱繘琛岃漿縐伙紝渚嬪l<sub>j</sub>=c<sub>1</sub>鏃惰漿鎹㈠埌鐘舵亁錛宭<sub>j</sub>=c<sub>2</sub>鏃剁姸鎬佽漿鎹㈠埌y絳夌瓑銆?/p> <h1>6 緇撹</h1> <p>瀛楃涓插尮閰嶉棶棰樻槸鑰侀棶棰樹簡錛屽茍娌℃湁澶鏂版剰鍙█錛屽彧涓嶈繃铏界劧KMP綆楁硶鍗佸垎綆鍗曪紝浣嗗畠鐨勫唴鍦ㄥ惈涔夎繕鏄崄鍒嗘繁鍒葷殑銆傛í鍚戞瘮杈僈MP銆丏FA鍜屾鍒欒璦銆佹鍒欒〃杈懼紡鎴戜滑浼?xì)鍙戠帋图屽畠浠箣闂村瓨鍦ㄥ緢澶氱殑鍏宠仈锛岃岃繖縐嶆瘮杈冧篃鏈夊埄浜庢垜浠洿濂界殑鐞嗚В榪欎簺綆楁硶錛屾垨鑰呮敼榪涜繖浜涚畻娉曘傛渶鍚庤涓鍙ワ紝璇曞浘鍒╃敤鐩墠鐨勬鏋朵嬌寰桲MP綆楁硶鏀寔鍏ㄩ儴縐嶇被鐨勯氶厤絎︼紙瀵瑰簲浜庢鍒欒〃杈懼紡灝辨槸x?銆亁*銆亁+銆亄m,n}絳夌瓑錛夋槸涓嶅彲鑳斤紝鑰屾垜浠篃涓嶉渶瑕佽繖涔堝仛錛屽洜涓烘垜浠繕鏈夋鍒欒〃杈懼紡鍢涖?/p> <img src ="http://www.tkk7.com/renyangok/aggbug/101927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-03-05 15:29 <a href="http://www.tkk7.com/renyangok/archive/2007/03/05/101927.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java鏁村瀷鏁扮粍騫寵 鐐圭畻娉?/title><link>http://www.tkk7.com/renyangok/archive/2007/03/05/101848.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Mon, 05 Mar 2007 02:40:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/03/05/101848.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/101848.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/03/05/101848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/101848.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/101848.html</trackback:ping><description><![CDATA[ <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img id="Codehighlighter1_0_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_119_Open_Text.style.display='none'; Codehighlighter1_0_119_Closed_Image.style.display='inline'; Codehighlighter1_0_119_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_0_119_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_119_Closed_Text.style.display='none'; Codehighlighter1_0_119_Open_Image.style.display='inline'; Codehighlighter1_0_119_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> <span id="Codehighlighter1_0_119_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span> <span id="Codehighlighter1_0_119_Open_Text"> <span style="COLOR: #008000">/*</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽鏁村艦鏁扮粍騫寵 鐐歸棶棰橈細(xì)騫寵 鐐規(guī)寚宸﹁竟鐨勬暣鏁板拰絳変簬鍙寵竟鐨勬暣鏁板拰錛?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽姹傚嚭騫寵 鐐逛綅緗紝瑕佹眰杈撳叆鐨勬暟緇勫彲鑳芥槸GB綰?br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽*聽鏈瑕佹眰鎵懼嚭鏁村瀷鏁扮粍鐨勪竴涓鉤琛$偣錛堝鏋滆鎵懼嚭鎵鏈夊鉤琛$偣鐨勮瘽錛屾寜姝ゆ柟娉曢渶瑕佹妸姣忎竴涓鉤琛$偣閮藉瓨璧鋒潵錛?br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽</span> <span style="COLOR: #008000">*/</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img id="Codehighlighter1_140_665_Open_Image" onclick="this.style.display='none'; Codehighlighter1_140_665_Open_Text.style.display='none'; Codehighlighter1_140_665_Closed_Image.style.display='inline'; Codehighlighter1_140_665_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_140_665_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_140_665_Closed_Text.style.display='none'; Codehighlighter1_140_665_Open_Image.style.display='inline'; Codehighlighter1_140_665_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽Test聽</span> <span id="Codehighlighter1_140_665_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_140_665_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_182_455_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_455_Open_Text.style.display='none'; Codehighlighter1_182_455_Closed_Image.style.display='inline'; Codehighlighter1_182_455_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_182_455_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_182_455_Closed_Text.style.display='none'; Codehighlighter1_182_455_Open_Image.style.display='inline'; Codehighlighter1_182_455_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽findBalanceableNod(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">[]聽a)</span> <span id="Codehighlighter1_182_455_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_182_455_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_199_217_Open_Image" onclick="this.style.display='none'; Codehighlighter1_199_217_Open_Text.style.display='none'; Codehighlighter1_199_217_Closed_Image.style.display='inline'; Codehighlighter1_199_217_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_199_217_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_199_217_Closed_Text.style.display='none'; Codehighlighter1_199_217_Open_Image.style.display='inline'; Codehighlighter1_199_217_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(a聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">)</span> <span id="Codehighlighter1_199_217_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_199_217_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">long</span> <span style="COLOR: #000000">聽sum聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0l</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">long</span> <span style="COLOR: #000000">聽subSum聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0l</span> <span style="COLOR: #000000">;<br /><img id="Codehighlighter1_291_311_Open_Image" onclick="this.style.display='none'; Codehighlighter1_291_311_Open_Text.style.display='none'; Codehighlighter1_291_311_Closed_Image.style.display='inline'; Codehighlighter1_291_311_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_291_311_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_291_311_Closed_Text.style.display='none'; Codehighlighter1_291_311_Open_Image.style.display='inline'; Codehighlighter1_291_311_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;聽i聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽a.length;聽i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)</span> <span id="Codehighlighter1_291_311_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_291_311_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽sum聽</span> <span style="COLOR: #000000">+=</span> <span style="COLOR: #000000">聽a[i];<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_348_439_Open_Image" onclick="this.style.display='none'; Codehighlighter1_348_439_Open_Text.style.display='none'; Codehighlighter1_348_439_Closed_Image.style.display='inline'; Codehighlighter1_348_439_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_348_439_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_348_439_Closed_Text.style.display='none'; Codehighlighter1_348_439_Open_Image.style.display='inline'; Codehighlighter1_348_439_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;聽i聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽a.length;聽i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)</span> <span id="Codehighlighter1_348_439_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_348_439_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_386_405_Open_Image" onclick="this.style.display='none'; Codehighlighter1_386_405_Open_Text.style.display='none'; Codehighlighter1_386_405_Closed_Image.style.display='inline'; Codehighlighter1_386_405_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_386_405_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_386_405_Closed_Text.style.display='none'; Codehighlighter1_386_405_Open_Image.style.display='inline'; Codehighlighter1_386_405_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">(subSum聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽sum聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">聽subSum聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">聽a[i])</span> <span id="Codehighlighter1_386_405_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_386_405_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽i;<br /><img id="Codehighlighter1_410_435_Open_Image" onclick="this.style.display='none'; Codehighlighter1_410_435_Open_Text.style.display='none'; Codehighlighter1_410_435_Closed_Image.style.display='inline'; Codehighlighter1_410_435_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_410_435_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_410_435_Closed_Text.style.display='none'; Codehighlighter1_410_435_Open_Image.style.display='inline'; Codehighlighter1_410_435_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #0000ff">else</span> <span id="Codehighlighter1_410_435_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_410_435_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽subSum聽</span> <span style="COLOR: #000000">+=</span> <span style="COLOR: #000000">聽a[i];<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽<br /><img id="Codehighlighter1_499_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_499_663_Open_Text.style.display='none'; Codehighlighter1_499_663_Closed_Image.style.display='inline'; Codehighlighter1_499_663_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_499_663_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_499_663_Closed_Text.style.display='none'; Codehighlighter1_499_663_Open_Image.style.display='inline'; Codehighlighter1_499_663_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main(String[]聽args)聽</span> <span id="Codehighlighter1_499_663_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_499_663_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">嫻嬭瘯鐢ㄤ緥錛氬鉤琛$偣涓?浣嶏紝涓簄-1浣嶏紝涓轟腑闂翠綅錛宎鐨勬瘡涓負(fù)瀛樹簡Integer.MAX_VALUE(鎵浠ョ敤sum,subSum鐢╨ong鍨?</span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_586_589_Open_Image" onclick="this.style.display='none'; Codehighlighter1_586_589_Open_Text.style.display='none'; Codehighlighter1_586_589_Closed_Image.style.display='inline'; Codehighlighter1_586_589_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_586_589_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_586_589_Closed_Text.style.display='none'; Codehighlighter1_586_589_Open_Image.style.display='inline'; Codehighlighter1_586_589_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">[]聽a聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_586_589_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_586_589_Open_Text"> <span style="COLOR: #000000">{</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">}</span> </span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽Test聽t聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽Test();<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽System.out.println(t.findBalanceableNod(a));<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <img src ="http://www.tkk7.com/renyangok/aggbug/101848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-03-05 10:40 <a href="http://www.tkk7.com/renyangok/archive/2007/03/05/101848.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java瀛楃涓插叏鎺掑垪闂錛堢粡鍏革級http://www.tkk7.com/renyangok/archive/2007/03/02/101515.html淇濆皵浠?/dc:creator>淇濆皵浠?/author>Fri, 02 Mar 2007 09:37:00 GMThttp://www.tkk7.com/renyangok/archive/2007/03/02/101515.htmlhttp://www.tkk7.com/renyangok/comments/101515.htmlhttp://www.tkk7.com/renyangok/archive/2007/03/02/101515.html#Feedback0http://www.tkk7.com/renyangok/comments/commentRss/101515.htmlhttp://www.tkk7.com/renyangok/services/trackbacks/101515.html /*
聽*聽鍘熼濡備笅錛氱敤1銆?銆?銆?銆?銆?榪欏叚涓暟瀛楋紝鐢╦ava鍐欎竴涓猰ain鍑芥暟錛屾墦鍗板嚭鎵鏈変笉鍚岀殑鎺掑垪錛?br />聽*聽濡傦細(xì)612234銆?12346絳夛紝瑕佹眰錛?4"涓嶈兘鍦ㄧ涓変綅錛?3"涓?6"涓嶈兘鐩歌繛.聽
聽*聽
聽*聽1聽鎶婇棶棰樺綊緇撲負(fù)鍥劇粨鏋勭殑閬嶅巻闂銆傚疄闄呬笂6涓暟瀛楀氨鏄叚涓粨鐐癸紝鎶婂叚涓粨鐐硅繛鎺ユ垚鏃犲悜榪為氬浘錛屽浜庢瘡涓涓粨鐐規(guī)眰榪欎釜鍥懼艦鐨勯亶鍘嗚礬寰勶紝
聽*聽鎵鏈夌粨鐐圭殑閬嶅巻璺緞灝辨槸鏈鍚庡榪?涓暟瀛楃殑鎺掑垪緇勫悎緇撴灉闆嗐偮?br />聽*聽2聽鏄劇劧榪欎釜緇撴灉闆嗚繕鏈揪鍒伴鐩殑瑕佹眰銆備粠浠ヤ笅鍑犱釜鏂歸潰鑰冭檻錛毬?br />聽*聽1.聽3錛?涓嶈兘鐩歌繛錛氬疄闄呰姹傝繖涓繛閫氬浘鐨勭粨鐐?錛?涔嬮棿涓嶈兘榪為?聽鍙湪鏋勯犲浘緇撴瀯鏃跺氨婊¤凍鏀規(guī)潯浠訛紝鐒跺悗鍐嶉亶鍘嗗浘銆偮?br />聽*聽2.聽涓嶈兘鏈夐噸澶?聽鑰冭檻鍒版湁涓や釜2錛屾槑鏄句細(xì)瀛樺湪閲嶅緇撴灉錛屽彲浠ユ妸緇撴灉闆嗘斁鍦═reeSet涓繃婊ら噸澶嶇粨鏋溌?br />聽*聽3.聽4涓嶈兘鍦ㄧ涓変綅:聽浠嶆棫鍦ㄧ粨鏋滈泦涓幓闄ゆ弧瓚蟲鏉′歡鐨勭粨鏋溿?br />
*/


import 聽java.util.Iterator;
import 聽java.util.TreeSet;

public class 聽Test聽 {

private 聽String[]聽b聽 = new 聽String[]聽 {聽 " 1 " ,聽 " 2 " ,聽 " 2 " ,聽 " 3 " ,聽 " 4 " ,聽 " 6 " 聽} ;

private int 聽n聽 = 聽b.length;

private boolean []聽visited聽 = new boolean [n];

private int [][]聽a聽 = new int [n][n];

private 聽String聽result聽 = "" ;

private 聽TreeSet聽set聽 = new 聽TreeSet();

public static void 聽main(String[]聽args)聽 {
聽聽
new 聽Test().start();
聽}


private void 聽start()聽 {

聽聽
// 聽Initial聽the聽map聽a[][]
聽聽 for 聽( int 聽i聽 = 0 ;聽i聽 < 聽n;聽i ++ )聽 {
聽聽聽
for 聽( int 聽j聽 = 0 ;聽j聽 < 聽n;聽j ++ )聽 {
聽聽聽聽
if 聽(i聽 == 聽j)聽 {
聽聽聽聽聽a[i][j]聽
= 0 ;
聽聽聽聽}
else {
聽聽聽聽聽a[i][j]聽
= 1 ;
聽聽聽聽}

聽聽聽}

聽聽}


聽聽
// 聽3聽and聽5聽can聽not聽be聽the聽neighbor.
聽聽a[ 3 ][ 5 ]聽 = 0 ;
聽聽a[
5 ][ 3 ]聽 = 0 ;

聽聽
// 聽Begin聽to聽depth聽search.
聽聽 for 聽( int 聽i聽 = 0 ;聽i聽 < 聽n;聽i ++ )聽 {
聽聽聽
this .depthFirstSearch(i);
聽聽}


聽聽
// 聽Print聽result聽treeset.
聽聽Iterator聽it聽 = 聽set.iterator();
聽聽
while 聽(it.hasNext())聽 {
聽聽聽String聽string聽
= 聽(String)聽it.next();
聽聽聽System.out.println(string);
聽聽}

聽}


private void 聽depthFirstSearch( int 聽startIndex)聽 {
聽聽visited[startIndex]聽
= true ;
聽聽result聽
= 聽result聽 + 聽b[startIndex];
聽聽
if 聽(result.length()聽 == 聽n)聽 {
// 聽聽聽"4"聽can聽not聽be聽the聽third聽position.
聽聽聽 if 聽(result.indexOf( " 4 " )聽 != 2 )聽 {
// 聽聽聽聽Filt聽the聽duplicate聽value.
聽聽聽聽set.add(result);
聽聽聽}

聽聽}

聽聽
for 聽( int 聽j聽 = 0 ;聽j聽 < 聽n;聽j ++ )聽 {
聽聽聽
if 聽(a[startIndex][j]聽 == 1 && 聽visited[j]聽 == false )聽 {
聽聽聽聽depthFirstSearch(j);
聽聽聽}

聽聽}


聽聽
// 聽restore聽the聽result聽value聽and聽visited聽value聽after聽listing聽a聽node.
聽聽result聽 = 聽result.substring( 0 ,聽result.length()聽 - 1 );
聽聽visited[startIndex]聽
= false ;
聽}

}


鍙榪欐牱瀹氫箟鍥撅紝鏍規(guī)湰涓嶇敤鍦ㄤ唬鐮佷腑鍐橧F ELSE璇彞銆?
瀹為檯涓婂熀浜庡浘鐨勭畻娉曞ソ澶勫湪浜庯紝鍙浣犺兘瀹氫箟濂芥弧瓚抽鐩姹傜殑鍥劇粨鏋勶紝閬嶅巻鐨勭粨鏋滃氨鏄綘瑕佺殑緇撴灉錛屼笉鐢ㄤ換浣曞閬嶅巻緇撴灉鍋氫換浣曞鐞嗐傚寘鎷湰棰樹腑鐨勶細(xì)4涓嶈兘鍦ㄧ涓変綅緗紝3錛?涓嶈兘鐩歌繛錛屽敮涓鎬ц姹傦紝鍏跺疄閮藉彲浠ュ湪浣撶幇鍦ㄦ瀯閫犵殑鍥懼艦緇撴瀯閲岋紝鐒跺悗鐩存帴閬嶅巻鍥懼彇寰楄嚜宸辮鐨勭粨鏋溿傝屼笉鐢ㄥ啀嬈″鐞嗙粨鏋滈泦銆傚彧鏄榪欓噷瀹為檯涓婂鍏跺畠瑕佹眰瑕佷綋鐜板湪鍥劇粨鏋勯噷鏈夊洶闅撅紙鐞嗚涓婃槸鍙互鐨勶級錛屼絾璧風(fēng)爜3錛?涓嶈兘鐩告帴鏄緢濂芥瀯閫犵殑錛屽氨鏄笂闈㈢殑浠g爜孌墊潵瑙i噴鐨勩?/p>

鍏充簬鍥懼艦鏁版嵁緇撴瀯寤鴻鍏堢湅鐪嬫暟鎹粨鏋勭殑涔︼紝涓昏鏄皢濡備綍鍒╃敤浜岀淮鏁扮粍鎻忚堪鍥劇粨鏋勶紝鍐嶇湅鐪嬪浘鐨勬繁搴﹂亶鍘嗗疄鐜板師鐞嗐傛渶鍚庡啀搴旂敤鍒拌繖涓棶棰樹笂鏉ワ紝鑷劧灝變笉闅炬槑鐧戒簡銆?/p>

]]>
鍔ㄦ佽鍒掔畻娉?/title><link>http://www.tkk7.com/renyangok/archive/2007/02/27/100957.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Tue, 27 Feb 2007 09:10:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/02/27/100957.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/100957.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/02/27/100957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/100957.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/100957.html</trackback:ping><description><![CDATA[ <p>錛堣漿鑷細(xì)<a >http://chinavery.100steps.net/chengxuyuan/4759.html</a>錛?br />鍔ㄦ佽鍒掓槸鏈功浠嬬粛鐨勪簲縐嶇畻娉曡璁℃柟娉曚腑闅懼害鏈澶х殑涓縐嶏紝瀹冨緩绔嬪湪鏈浼樺師鍒欑殑鍩虹涓娿傞噰鐢ㄥ姩鎬佽鍒掓柟娉曪紝鍙互浼橀泤鑰岄珮鏁堝湴瑙e喅璁稿鐢ㄨ椽濠畻娉曟垨鍒嗚屾不涔嬬畻娉曟棤娉曡В鍐崇殑闂銆傚湪浠嬬粛鍔ㄦ佽鍒掔殑鍘熺悊涔嬪悗錛屾湰绔犲皢鍒嗗埆鑰冨療鍔ㄦ佽鍒掓柟娉曞湪瑙e喅鑳屽寘闂銆佸浘璞″帇緙┿佺煩闃典箻娉曢摼銆佹渶鐭礬寰勩佹棤浜ゅ弶瀛愰泦鍜屽厓浠舵姌鍙犵瓑鏂歸潰鐨勫簲鐢ㄣ?/p> <p>3.1 綆楁硶鎬濇兂</p> <p>鍜岃椽濠畻娉曚竴鏍鳳紝鍦ㄥ姩鎬佽鍒掍腑錛屽彲灝嗕竴涓棶棰樼殑瑙e喅鏂規(guī)瑙嗕負(fù)涓緋誨垪鍐崇瓥鐨勭粨鏋溿備笉鍚岀殑鏄紝鍦ㄨ椽濠畻娉曚腑錛屾瘡閲囩敤涓嬈¤椽濠噯鍒欎究鍋氬嚭涓涓笉鍙挙鍥炵殑鍐崇瓥錛岃屽湪鍔ㄦ佽鍒掍腑錛岃繕瑕佽冨療姣忎釜鏈浼樺喅絳栧簭鍒椾腑鏄惁鍖呭惈涓涓渶浼樺瓙搴忓垪銆?/p> <p>渚?-1 [鏈鐭礬緇廬 鑰冨療鍥? 2 - 2涓殑鏈夊悜鍥俱傚亣璁捐瀵繪壘涓鏉′粠婧愯妭鐐箂= 1鍒扮洰鐨勮妭鐐筪= 5鐨勬渶鐭礬寰勶紝鍗抽夋嫨姝よ礬寰勬墍緇忚繃鐨勫悇涓妭鐐廣傜涓姝ュ彲閫夋嫨鑺傜偣2錛?鎴?銆傚亣璁鵑夋嫨浜嗚妭鐐?錛屽垯姝ゆ椂鎵瑕佹眰瑙g殑闂鍙樻垚錛氶夋嫨涓鏉′粠3鍒?鐨勬渶鐭礬寰勩傚鏋?鍒?鐨勮礬寰勪笉鏄渶鐭殑錛屽垯浠?寮濮嬬粡榪?鍜?鐨勮礬寰勪篃涓嶄細(xì)鏄渶鐭殑銆備緥濡傦紝鑻ラ夋嫨鐨勫瓙璺緞錛堥潪鏈鐭礬寰勶級鏄?錛?錛? (鑰楄垂涓? )錛屽垯1鍒?鐨勮礬寰勪負(fù)1錛?錛?錛? (鑰楄垂涓?1 )錛岃繖姣旈夋嫨鏈鐭瓙璺緞3錛?錛?鑰屽緱鍒扮殑1鍒?鐨勮礬寰?錛?錛?錛? (鑰楄垂涓?) 鑰楄垂鏇村ぇ銆?/p> <p>鎵浠ュ湪鏈鐭礬寰勯棶棰樹腑錛屽亣濡傚湪鐨勭涓嬈″喅絳栨椂鍒拌揪浜嗘煇涓妭鐐箆錛岄偅涔堜笉綆 鏄庢牱紜畾鐨勶紝姝ゅ悗閫夋嫨浠巚 鍒癲 鐨勮礬寰勬椂錛岄兘蹇呴』閲囩敤鏈浼樼瓥鐣ャ?/p> <p>渚?-2 [0/1鑳屽寘闂] 鑰冨療1 3 . 4鑺傜殑0 / 1鑳屽寘闂銆傚鍓嶆墍榪幫紝鍦ㄨ闂涓渶瑕佸喅瀹歺1 .. xn鐨勫箋傚亣璁炬寜i = 1錛?錛?錛宯 鐨勬搴忔潵紜畾xi 鐨勫箋傚鏋滅疆x1 = 0錛屽垯闂杞彉涓虹浉瀵逛簬鍏朵綑鐗╁搧錛堝嵆鐗╁搧2錛?錛?錛宯錛夛紝鑳屽寘瀹歸噺浠嶄負(fù)c 鐨勮儗鍖呴棶棰樸傝嫢緗畑1 = 1錛岄棶棰樺氨鍙樹負(fù)鍏充簬鏈澶ц儗鍖呭閲忎負(fù)c-w1 鐨勯棶棰樸傜幇璁緍?{c錛宑-w1 } 涓哄墿浣欑殑鑳屽寘瀹歸噺銆?/p> <p>鍦ㄧ涓嬈″喅絳栦箣鍚庯紝鍓╀笅鐨勯棶棰樹究鏄冭檻鑳屽寘瀹歸噺涓簉 鏃剁殑鍐崇瓥銆備笉綆1 鏄?鎴栨槸1錛孾x2 錛?錛寈n ] 蹇呴』鏄涓嬈″喅絳栦箣鍚庣殑涓涓渶浼樻柟妗堬紝濡傛灉涓嶆槸錛屽垯浼?xì)鏈変竴涓洿濂界殑鏂規(guī)[y2錛?錛寉n ]錛屽洜鑰孾x1錛寉2錛?錛寉n ]鏄竴涓洿濂界殑鏂規(guī)銆?/p> <p>鍋囪n=3, w=[100,14,10], p=[20,18,15], c= 11 6銆傝嫢璁緓1 = 1錛屽垯鍦ㄦ湰嬈″喅絳栦箣鍚庯紝鍙敤鐨勮儗鍖呭閲忎負(fù)r= 116-100=16 銆俒x2錛寈3 ]=[0,1] 絎﹀悎瀹歸噺闄愬埗鐨勬潯浠訛紝鎵寰楀間負(fù)1 5錛屼絾鍥犱負(fù)[x2錛寈3 ]= [1錛?] 鍚屾牱絎﹀悎瀹歸噺鏉′歡涓旀墍寰楀間負(fù)1 8錛屽洜姝x2錛寈3 ] = [ 0錛?] 騫墮潪鏈浼樼瓥鐣ャ傚嵆x= [ 1錛?錛?] 鍙敼榪涗負(fù)x= [ 1錛?錛? ]銆傝嫢璁緓1 = 0錛屽垯瀵逛簬鍓╀笅鐨勪袱縐嶇墿鍝佽岃█錛屽閲忛檺鍒舵潯浠朵負(fù)11 6銆傛諱箣錛屽鏋滃瓙闂鐨勭粨鏋淸x2錛寈3 ]涓嶆槸鍓╀綑鎯呭喌涓嬬殑涓涓渶浼樿В錛屽垯[x1錛寈2錛寈3 ]涔熶笉浼?xì)鏄諱綋鐨勬渶浼樿В銆?/p> <p>渚?-3 [鑸垂] 鏌愯埅綰夸環(huán)鏍艱〃涓猴細(xì)浠庝簹鐗瑰叞澶у埌綰界害鎴栬姖鍔犲摜錛屾垨浠庢礇鏉夌煻鍒頒簹鐗瑰叞澶х殑璐圭敤涓? 1 0 0錛涗粠鑺濆姞鍝ュ埌綰界害紲ㄤ環(huán)$ 2 0錛涜屽浜庤礬緇忎簹鐗瑰叞澶х殑鏃呭錛屼粠浜氱壒鍏板ぇ鍒拌姖鍔犲摜鐨勮垂鐢ㄤ粎涓? 2 0銆備粠媧涙潐鐭跺埌綰界害鐨勮埅綰挎秹鍙?qiáng)鍒板涓浆鏈哄満鐨勯夋嫨銆傚鏋滈棶棰樼姸鎬佺殑褰㈠紡涓猴紙璧風(fēng)偣錛岀粓鐐癸級錛岄偅涔堝湪閫夋嫨浠庢礇鏉夌煻鍒頒簹鐗瑰叞澶у悗錛岄棶棰樼殑鐘舵佸彉涓猴紙浜氱壒鍏板ぇ錛岀航綰︼級銆備粠浜氱壒鍏板ぇ鍒扮航綰︾殑鏈渚垮疁鑸嚎鏄粠浜氱壒鍏板ぇ鐩撮綰界害錛岀エ浠? 1 0 0銆傝屼嬌鐢ㄧ洿椋炴柟寮忔椂錛屼粠媧涙潐鐭跺埌綰界害鐨勮姳璐逛負(fù)$ 2 0 0銆備笉榪囷紝浠庢礇鏉夌煻鍒扮航綰︾殑鏈渚垮疁鑸嚎涓烘礇鏉夌煻-浜氱壒鍏板ぇ-鑺濆姞鍝?綰界害錛屽叾鎬昏姳璐逛負(fù)$ 1 4 0錛堝湪澶勭悊灞閮ㄦ渶浼樿礬寰勪簹鐗瑰叞澶у埌綰界害榪囩▼涓夋嫨浜嗘渶浣庤姳璐圭殑璺緞錛氫簹鐗瑰叞澶?鑺濆姞鍝?綰界害錛夈?/p> <p>濡傛灉鐢ㄤ笁緇存暟緇勶紙t a g錛岃搗鐐癸紝緇堢偣錛夎〃紺洪棶棰樼姸鎬侊紝鍏朵腑t a g涓?琛ㄧず杞錛?t a g涓?琛ㄧず鍏朵粬鎯呭艦錛岄偅涔堝湪鍒拌揪浜氱壒鍏板ぇ鍚庯紝鐘舵佺殑涓夌淮鏁扮粍灝嗗彉涓猴紙 0錛屼簹鐗瑰叞澶э紝綰界害錛夛紝瀹冨搴旂殑鏈浼樿礬寰勬槸緇忕敱鑺濆姞鍝ョ殑閭f潯璺緞銆?/p> <p>褰撴渶浼樺喅絳栧簭鍒椾腑鍖呭惈鏈浼樺喅絳栧瓙搴忓垪鏃訛紝鍙緩绔嬪姩鎬佽鍒掗掑綊鏂圭▼錛?d y n a m i c -programming recurrence equation錛夛紝瀹冨彲浠ュ府鍔╂垜浠珮鏁堝湴瑙e喅闂銆?/p> <p>渚?-4 [0/1鑳屽寘] 鍦ㄤ緥3 - 2鐨? / 1鑳屽寘闂涓紝鏈浼樺喅絳栧簭鍒楃敱鏈浼樺喅絳栧瓙搴忓垪緇勬垚銆傚亣璁緁 (i,y) 琛ㄧず渚? 5 - 2涓墿浣欏閲忎負(fù)y錛屽墿浣欑墿鍝佷負(fù)i錛宨 + 1錛?錛宯 鏃剁殑鏈浼樿В鐨勫鹼紝鍗籌細(xì)鍜屽埄鐢ㄦ渶浼樺簭鍒楃敱鏈浼樺瓙搴忓垪鏋勬垚鐨勭粨璁猴紝鍙緱鍒癴 鐨勯掑綊寮忋俧 ( 1 ,c) 鏄垵濮嬫椂鑳屽寘闂鐨勬渶浼樿В銆傚彲浣跨敤錛?1 5 - 2錛夊紡閫氳繃閫掑綊鎴栬凱浠f潵姹傝Вf ( 1 ,c)銆備粠f (n, * )寮濮嬭凱寮忥紝 f (n, * )鐢憋紙1 5 - 1錛夊紡寰楀嚭錛岀劧鍚庣敱錛?1 5 - 2錛夊紡閫掑綊璁$畻f (i,*) ( i=n- 1錛宯- 2錛?錛?2 )錛屾渶鍚庣敱錛?1 5 - 2錛夊紡寰楀嚭f ( 1 ,c)銆?/p> <p>瀵逛簬渚? 5 - 2錛岃嫢0鈮錛? 0錛屽垯f ( 3 ,y) = 0錛涜嫢y鈮? 0錛宖 ( 3 ,y) = 1 5銆傚埄鐢ㄩ掑綊寮忥紙1 5 - 2錛夛紝鍙緱f (2, y) = 0 ( 0鈮錛?0 )錛沠錛?錛寉錛? 1 5錛? 0鈮錛? 4錛夛紱f錛?錛寉錛? 1 8錛? 4鈮錛? 4錛夊拰f錛?錛寉錛? 3 3錛坹鈮? 4錛夈傚洜姝ゆ渶浼樿Вf ( 1 , 11 6 ) = m a x {f錛?錛?1 6錛夛紝f錛?錛?1 6 - w1錛? p1} = m a x {f錛?錛?1 6錛夛紝f錛?錛? 6錛? 2 0 } = m a x { 3 3錛? 8 } = 3 8銆?/p> <p>鐜板湪璁$畻xi 鍊鹼紝姝ラ濡備笅錛氳嫢f ( 1 ,c) =f ( 2 ,c)錛屽垯x1 = 0錛屽惁鍒檟1 = 1銆傛帴涓嬫潵闇浠庡墿浣欏閲廲-w1涓姹傛渶浼樿В錛岀敤f (2, c-w1) 琛ㄧず鏈浼樿В銆備緷姝ょ被鎺紝鍙緱鍒版墍鏈夌殑xi (i= 1.n) 鍊箋?/p> <p>鍦ㄨ渚嬩腑錛屽彲寰楀嚭f ( 2 , 11 6 ) = 3 3鈮爁 ( 1 , 11 6 )錛屾墍浠1 = 1銆傛帴鐫鍒╃敤榪斿洖鍊? 8 -p1=18 璁$畻x2 鍙?qiáng)x3錛屾鏃秗 = 11 6 -w1 = 1 6錛屽張鐢眆 ( 2 , 1 6 ) = 1 8錛屽緱f ( 3 , 1 6 ) = 1 4鈮爁 ( 2 , 1 6 )錛屽洜姝2 = 1錛屾鏃秗= 1 6 -w2 = 2錛屾墍浠 (3,2) =0錛屽嵆寰梮3 = 0銆?/p> <p>鍔ㄦ佽鍒掓柟娉曢噰鐢ㄦ渶浼樺師鍒欙紙 principle of optimality錛夋潵寤虹珛鐢ㄤ簬璁$畻鏈浼樿В鐨勯掑綊寮忋傛墍璋撴渶浼樺師鍒欏嵆涓嶇鍓嶉潰鐨勭瓥鐣ュ浣曪紝姝ゅ悗鐨勫喅絳栧繀欏繪槸鍩轟簬褰撳墠鐘舵侊紙鐢變笂涓嬈″喅絳栦駭鐢燂級鐨勬渶浼樺喅絳栥傜敱浜庡浜庢湁浜涢棶棰樼殑鏌愪簺閫掑綊寮忔潵璇村茍涓嶄竴瀹氳兘淇濊瘉鏈浼樺師鍒欙紝鍥犳鍦ㄦ眰瑙i棶棰樻椂鏈夊繀瑕佸瀹冭繘琛岄獙璇併傝嫢涓嶈兘淇濇寔鏈浼樺師鍒欙紝鍒欎笉鍙簲鐢ㄥ姩鎬佽鍒掓柟娉曘傚湪寰楀埌鏈浼樿В鐨勯掑綊寮忎箣鍚庯紝闇瑕佹墽琛屽洖婧紙t r a c e b a c k錛変互鏋勯犳渶浼樿В銆?/p> <p>緙栧啓涓涓畝鍗曠殑閫掑綊紼嬪簭鏉ユ眰瑙e姩鎬佽鍒掗掑綊鏂圭▼鏄竴浠跺緢璇變漢鐨勪簨銆傜劧鑰岋紝姝e鎴戜滑灝嗗湪涓嬫枃鐪嬪埌鐨勶紝濡傛灉涓嶅姫鍔涘湴鍘婚伩鍏嶉噸澶嶈綆楋紝閫掑綊紼嬪簭鐨勫鏉傛у皢闈炲父鍙銆傚鏋滃湪閫掑綊紼嬪簭璁捐涓В鍐充簡閲嶅璁$畻闂鏃訛紝澶嶆潅鎬у皢鎬ュ墽涓嬮檷銆傚姩鎬佽鍒掗掑綊鏂圭▼涔熷彲鐢ㄨ凱浠f柟寮忔潵姹傝В錛岃繖鏃跺緢鑷劧鍦伴伩鍏嶄簡閲嶅璁$畻銆傚敖綆¤凱浠g▼搴忎笌閬垮厤閲嶅璁$畻鐨勯掑綊紼嬪簭鏈夌浉鍚岀殑澶嶆潅鎬э紝浣嗚凱浠g▼搴忎笉闇瑕侀檮鍔犵殑閫掑綊鏍堢┖闂達(dá)紝鍥犳灝嗘瘮閬垮厤閲嶅璁$畻鐨勯掑綊紼嬪簭鏇村揩銆?/p> <p> <br />3.2 搴旂敤 </p> <p>3.2.1 0/1鑳屽寘闂 </p> <p>1. 閫掑綊絳栫暐</p> <p>鍦ㄤ緥3 - 4涓凡寤虹珛浜嗚儗鍖呴棶棰樼殑鍔ㄦ佽鍒掗掑綊鏂圭▼錛屾眰瑙i掑綊寮忥紙 1 5 - 2錛夌殑涓涓緢鑷劧鐨勬柟娉曚究鏄嬌鐢ㄧ▼搴? 5 - 1涓殑閫掑綊綆楁硶銆傝妯″潡鍋囪p銆亀 鍜宯 涓鴻緭鍏ワ紝涓攑 涓烘暣鍨嬶紝F(1,c) 榪斿洖f ( 1 ,c) 鍊箋?/p> <p>紼嬪簭15-1 鑳屽寘闂鐨勯掑綊鍑芥暟</p> <p>int F(int i, int y)</p> <p>{// 榪斿洖f ( i , y ) .</p> <p>if (i == n) return (y < w[n]) ? 0 : p[n];</p> <p>if (y < w[i]) return F(i+1,y);</p> <p>return max(F(i+1,y), F(i+1,y-w[i]) + p[i]);</p> <p>}</p> <p>紼嬪簭1 5 - 1鐨勬椂闂村鏉傛 (n)婊¤凍錛歵 ( 1 ) =a錛泃錛坣錛夆墹2t錛坣- 1錛?b錛坣錛?錛夛紝鍏朵腑a銆乥 涓哄父鏁般傞氳繃姹傝В鍙緱t (n) =O( 2n)銆?/p> <p>渚?-5 璁緉= 5錛宲= [ 6 , 3 , 5 , 4 , 6 ]錛寃=[2,2,6,5,4] 涓攃= 1 0 ,姹俧 ( 1 , 1 0 )銆備負(fù)浜嗙‘瀹歠 ( 1 , 1 0 )錛岃皟鐢ㄥ嚱鏁癋 ( 1 , 1 0 )銆傞掑綊璋冪敤鐨勫叧緋誨鍥? 5 - 1鐨勬爲(wèi)鍨嬬粨鏋勬墍紺恒傛瘡涓妭鐐圭敤y鍊兼潵鏍囪銆傚浜庣j灞傜殑鑺傜偣鏈塱=j錛屽洜姝ゆ牴鑺傜偣琛ㄧずF ( 1 , 1 0 )錛岃屽畠鏈夊乏瀛╁瓙鍜屽彸瀛╁瓙錛屽垎鍒搴擣 ( 2 , 1 0 )鍜孎 ( 2 , 8 )銆傛誨叡鎵ц浜? 8嬈¢掑綊璋冪敤銆備絾鎴戜滑娉ㄦ剰鍒幫紝鍏朵腑鍙兘鍚湁閲嶅鍓嶉潰宸ヤ綔鐨勮妭鐐癸紝濡俧 ( 3 , 8 )璁$畻榪囦袱嬈★紝鐩稿悓鎯呭喌鐨勮繕鏈塮 ( 4 , 8 )銆乫 ( 4 , 6 )銆乫 ( 4 , 2 )銆乫 ( 5 , 8 )銆乫 ( 5 , 6 )銆乫 ( 5 , 3 )銆乫 (5,2) 鍜宖 ( 5 , 1 )銆傚鏋滀繚鐣欎互鍓嶇殑璁$畻緇撴灉錛屽垯鍙皢鑺傜偣鏁板噺鑷? 9錛屽洜涓哄彲浠ヤ涪寮冨浘涓殑闃村獎鑺傜偣銆?/p> <p>姝e鍦ㄤ緥3 - 5涓墍鐪嬪埌鐨勶紝紼嬪簭1 5 - 1鍋氫簡涓浜涗笉蹇呰鐨勫伐浣溿備負(fù)浜嗛伩鍏峟 (i,y)鐨勯噸澶嶈綆楋紝蹇呴』瀹氫箟涓涓敤浜庝繚鐣欏凡琚綆楀嚭鐨刦 (i,y)鍊肩殑琛ㄦ牸L錛岃琛ㄦ牸鐨勫厓绱犳槸涓夊厓緇?i,y,f (i,y) )銆傚湪璁$畻姣忎竴涓猣 (i,y)涔嬪墠錛屽簲媯鏌ヨ〃L涓槸鍚﹀凡鍖呭惈涓涓笁鍏冪粍(i,y, * )錛屽叾涓?琛ㄧず浠繪剰鍊箋傚鏋滃凡鍖呭惈錛屽垯浠庤琛ㄤ腑鍙栧嚭f (i,y)鐨勫鹼紝鍚﹀垯錛屽f (i,y)榪涜璁$畻騫跺皢璁$畻鎵寰楃殑涓夊厓緇?i,y,f (i,y) )鍔犲叆琛↙銆侺鏃㈠彲浠ョ敤鏁e垪錛堣7 . 4鑺傦級鐨勫艦寮忓瓨鍌紝涔熷彲鐢ㄤ簩鍙夋悳绱㈡爲(wèi)(瑙?1绔?鐨勫艦寮忓瓨鍌ㄣ?/p> <p>2. 鏉冧負(fù)鏁存暟鐨勮凱浠f柟娉?/p> <p>褰撴潈涓烘暣鏁版椂錛屽彲璁捐涓涓浉褰撶畝鍗曠殑綆楁硶錛堣紼嬪簭1 5 - 2錛夋潵姹傝Вf ( 1 ,c)銆傝綆楁硶鍩轟簬渚? - 4鎵緇欏嚭鐨勭瓥鐣ワ紝鍥犳姣忎釜f (i,y) 鍙綆椾竴嬈°傜▼搴? 5 - 2鐢ㄤ簩緇存暟緇刦 [ ][ ]鏉ヤ繚瀛樺悇f 鐨勫箋傝屽洖婧嚱鏁癟r a c e b a c k鐢ㄤ簬紜畾鐢辯▼搴? 5 - 2鎵浜х敓鐨剎i 鍊箋傚嚱鏁癒 n a p s a c k鐨勫鏉傛т負(fù)( n c錛夛紝鑰孴r a c e b a c k鐨勫鏉傛т負(fù)( n )銆?/p> <p>紼嬪簭15-2 f 鍜寈 鐨勮凱浠h綆?/p> <p>template<class T></p> <p>void Knapsack(T p[], int w[], int c, int n, T** f)</p> <p>{// 瀵逛簬鎵鏈塱鍜寉璁$畻f [ i ] [ y ]</p> <p>// 鍒濆鍖杅 [ n ] [ ]</p> <p>for (int y = 0; y <= yMax; y++)</p> <p>f[n][y] = 0;</p> <p>for (int y = w[n]; y <= c; y++)</p> <p>f[n][y] = p[n];</p> <p>// 璁$畻鍓╀笅鐨刦</p> <p>for (int i = n - 1; i > 1; i--) {</p> <p>for (int y = 0; y <= yMax; y++)</p> <p>f[i][y] = f[i+1][y];</p> <p>for (int y = w[i]; y <= c; y++)</p> <p>f[i][y] = max(f[i+1][y], f[i+1][y-w[i]] + p[i]);</p> <p>}</p> <p>f[1][c] = f[2][c];</p> <p>if (c >= w[1])</p> <p>f[1][c] = max(f[1][c], f[2][c-w[1]] + p[1]);</p> <p>}</p> <p>template<class T></p> <p>void Traceback(T **f, int w[], int c, int n, int x[])</p> <p>{// 璁$畻x</p> <p>for (int i = 1; i < n; i++)</p> <p>if (f[i][c] == f[i+1][c]) x[i] = 0;</p> <p>else {x[i] = 1;</p> <p>c -= w[i];}</p> <p>x[n] = (f[n][c]) ? 1 : 0;</p> <p>}</p> <p>3. 鍏冪粍鏂規(guī)硶錛?閫夎錛?/p> <p>紼嬪簭1 5 - 2鏈変袱涓己鐐癸細(xì)1) 瑕佹眰鏉冧負(fù)鏁存暟錛?) 褰撹儗鍖呭閲廲 寰堝ぇ鏃訛紝紼嬪簭1 5 - 2鐨勯熷害鎱簬紼嬪簭1 5 - 1銆備竴鑸儏鍐典笅錛岃嫢c錛?n錛岀▼搴? 5 - 2鐨勫鏉傛т負(fù)W (n2n )銆傚彲鍒╃敤鍏冪粍鐨勬柟娉曟潵鍏嬫湇涓婅堪涓や釜緙虹偣銆傚湪鍏冪粍鏂規(guī)硶涓紝瀵逛簬姣忎釜i錛宖 (i, y) 閮戒互鏁板(y, f (i, y)) 鐨勫艦寮忔寜y鐨勯掑嬈″簭瀛樺偍浜庤〃P(i)涓傚悓鏃訛紝鐢變簬f (i, y) 鏄痽 鐨勯潪閫掑噺鍑芥暟錛屽洜姝(i) 涓悇鏁板(y, f (i, y)) 涔熸槸鎸塮 (i, y) 鐨勯掑嬈″簭鎺掑垪鐨勩?/p> <p>渚?-6 鏉′歡鍚屼緥3 - 5銆傚f 鐨勮綆楀鍥? 5 - 2鎵紺恒傚綋i= 5鏃訛紝f 鐢辨暟瀵歸泦鍚圥( 5 ) = [ ( 0 , 0 ) , ( 4 , 6 ) ]琛ㄧず銆傝孭( 4 )銆丳( 3 )鍜孭( 2 )鍒嗗埆涓篬 ( 0 , 0 ) , ( 4 , 6 ) , ( 9 , 1 0 ) ]銆乕 ( 0 , 0 ) ( 4 , 6 ) , ( 9 , 1 0 ) , ( 1 0 , 11)] 鍜孾 ( 0 , 0 ) ( 2 , 3 ) ( 4 , 6 ) ( 6 , 9 ) ( 9 , 1 0 ) ( 1 0 , 11 ) ]銆?/p> <p>涓烘眰f ( 1 , 1 0 )錛屽埄鐢ㄥ紡錛? 5 - 2錛夊緱f ( 1 , 1 0 ) = m a x锝?jīng)f ( 2 , 1 0 )錛宖 ( 2 , 8 ) + p 1锝濄傜敱P( 2 )寰梖 ( 2 , 1 0 ) = 11銆乫 (2,8)=9 (f ( 2 , 8 ) = 9鏉ヨ嚜鏁板( 6錛? ) )錛屽洜姝 ( 1 , 1 0 ) = m a x锝?1 , 1 5锝? 1 5銆傜幇鍦ㄦ潵姹倄i 鐨勫鹼紝鍥犱負(fù)f ( 1 , 1 0 ) =f ( 2 , 6 ) +p1錛屾墍浠1 = 1錛涚敱f ( 2 , 6 ) =f ( 3 , 6 - w 2 ) +p2 =f ( 3 , 4 ) +p2錛屽緱x2 = 1錛涚敱f ( 3 , 4 ) =f ( 4 , 4 ) =f ( 5 , 4 )寰梮3=x4 = 0錛涙渶鍚庯紝鍥爁 ( 5 , 4 )鈮?寰梮5= 1銆?/p> <p>媯鏌ユ瘡涓狿(i) 涓殑鏁板錛屽彲浠ュ彂鐜版瘡瀵?y,f (i,y)) 瀵瑰簲浜庡彉閲弜i , ., xn 鐨?/1 璧嬪肩殑涓嶅悓緇勫悎銆傝錛坅,b錛夊拰錛坈,d錛夋槸瀵瑰簲浜庝袱緇勪笉鍚寈i , ., xn 鐨? / 1璧嬪鹼紝鑻鈮涓攂錛渄錛屽垯(a, b) 鍙?b, c) 鏀厤銆傝鏀厤鑰呬笉蹇呭姞鍏(i)涓傝嫢鍦ㄧ浉鍚岀殑鏁板涓湁涓や釜鎴栨洿澶氱殑璧嬪鹼紝鍒欏彧鏈変竴涓斁鍏(i)銆傚亣璁緒n鈮錛孭(n)=[(0,0), (wn , pn ) ]錛孭錛坣錛変腑瀵瑰簲浜巟n 鐨勪袱涓暟瀵瑰垎鍒瓑浜?鍜?銆傚浜庢瘡涓猧錛孭(i)鍙敱P(i+ 1 )寰楀嚭銆傞鍏堬紝瑕佽綆楁暟瀵圭殑鏈夊簭闆嗗悎Q錛屼嬌寰楀綋涓斾粎褰搘i鈮鈮涓?s-wi , t-pi )涓篜(i+1) 涓殑涓涓暟瀵規(guī)椂錛岋紙s,t錛変負(fù)Q涓殑涓涓暟瀵廣傜幇鍦≦涓寘鍚玿i = 1鏃剁殑鏁板闆嗭紝鑰孭(i+ 1 )瀵瑰簲浜巟i = 0鐨勬暟瀵歸泦銆傛帴涓嬫潵錛屽悎騫禥鍜孭(i+ 1 )騫跺垹闄ゅ彈鏀厤鑰呭拰閲嶅鍊煎嵆鍙緱鍒癙(i)銆?/p> <p>渚?-7 鍚勬暟鎹悓渚? 5 - 6銆侾(5)=[(0,0),(4,6)], 鍥犳Q= [ ( 5 , 4 ) , ( 9 , 1 0 ) ]銆傜幇鍦ㄨ灝哖( 5 )鍜孮鍚堝茍寰楀埌P( 4 )銆傚洜( 5 , 4 )鍙? 4 , 6 )鏀厤錛屽彲鍒犻櫎( 5 , 4 )錛屾墍浠錛?錛?[(0,0), (4,6), (9,10)]銆傛帴鐫璁$畻P( 3 )錛岄鍏堢敱P( 4 )寰桻=[(6,5), (10,11 ) ]錛岀劧鍚庡張鐢卞悎騫舵柟娉曞緱P(3)=[(0,0), (4,6), (9,10), (10,11 ) ]銆傛渶鍚庤綆桺( 2 )錛氱敱P( 3 )寰桻= [ ( 2 , 3 )錛? 6 , 9 ) ]錛孭( 3 )涓嶲鍚堝茍寰桺(2)=[(0,0), (2,3), (4,6), (6,9), (9,10). (10,11 ) ]銆傚洜涓烘瘡涓狿(i) 涓殑鏁板瀵瑰簲浜巟i , ., xn 鐨勪笉鍚? / 1璧嬪鹼紝鍥犳P(i) 涓殑鏁板涓嶄細(xì)瓚呰繃2n-i+ 1涓傝綆桺(i) 鏃訛紝璁$畻Q闇娑堣? |P(i+ 1 ) |錛夌殑鏃墮棿錛屽悎騫禤(i+1) 鍜孮鍚屾牱闇瑕? |P(i+ 1 ) | )鐨勬椂闂淬傝綆楁墍鏈塒(i) 鏃舵墍闇瑕佺殑鎬繪椂闂翠負(fù)錛?(n ?i=2|P(i + 1)|= O ( 2n )銆傚綋鏉冧負(fù)鏁存暟鏃訛紝|P(i) |鈮+1, 姝ゆ椂澶嶆潅鎬т負(fù)O ( m i n {n c, 2n } )銆?/p> <p>濡? . 4 . 3鑺傚畾涔夌殑錛屾暟瀛楀寲鍥懼儚鏄痬脳m鐨勫儚绱犻樀鍒椼傚亣瀹氭瘡涓儚绱犳湁涓涓? ~ 2 5 5鐨勭伆搴﹀箋傚洜姝ゅ瓨鍌ㄤ竴涓儚绱犺嚦澶氶渶8浣嶃傝嫢姣忎釜鍍忕礌瀛樺偍閮界敤鏈澶т綅8浣嶏紝鍒欐葷殑瀛樺偍絀洪棿涓?m2 浣嶃備負(fù)浜嗗噺灝戝瓨鍌ㄧ┖闂達(dá)紝鎴戜滑灝嗛噰鐢ㄥ彉闀挎ā寮忥紙 variable bit scheme錛夛紝鍗充笉鍚屽儚绱犵敤涓嶅悓浣嶆暟鏉ュ瓨鍌ㄣ傚儚绱犲間負(fù)0鍜?鏃跺彧闇1浣嶅瓨鍌ㄧ┖闂達(dá)紱鍊?銆?鍚勯渶2浣嶏紱鍊?錛?錛?鍜?鍚勯渶3浣嶏紱浠ユ綾繪帹錛屼嬌鐢ㄥ彉闀挎ā寮忕殑姝ラ濡備笅錛?/p> <p>1) 鍥懼儚綰挎у寲鏍規(guī)嵁鍥?5-3a 涓殑鎶樼嚎灝唌脳m緇村浘鍍忚漿鎹負(fù)1脳m2 緇寸煩闃點(diǎn)?/p> <p>2) 鍒嗘灝嗗儚绱犵粍鍒嗘垚鑻ュ共涓錛屽垎孌靛師鍒欐槸錛氭瘡孌典腑鐨勫儚绱犱綅鏁扮浉鍚屻傛瘡涓鏄浉閭誨儚绱犵殑闆嗗悎涓旀瘡孌墊渶澶氬惈2 5 6涓儚绱狅紝鍥犳錛岃嫢鐩稿悓浣嶆暟鐨勫儚绱犺秴榪? 5 6涓殑璇濓紝鍒欑敤涓や釜浠ヤ笂鐨勬琛ㄧず銆?/p> <p>3) 鍒涘緩鏂囦歡鍒涘緩涓変釜鏂囦歡錛歋 e g m e n t L e n g t h, BitsPerPixel 鍜孭 i x e l s銆傜涓涓枃浠跺寘鍚湪2 )涓墍寤虹殑孌電殑闀垮害(鍑? )錛屾枃浠朵腑鍚勯」鍧囦負(fù)8浣嶉暱銆傛枃浠禕itsPerPixel 緇欏嚭浜嗗悇孌典腑姣忎釜鍍忕礌鐨勫瓨鍌ㄤ綅鏁幫紙鍑?錛夛紝鏂囦歡涓悇欏瑰潎涓?浣嶃傛枃浠禤ixels 鍒欐槸浠ュ彉闀挎牸寮忓瓨鍌ㄧ殑鍍忕礌鐨勪簩榪涘埗涓層?/p> <p>4) 鍘嬬緝鏂囦歡鍘嬬緝鍦?) 涓墍寤虹珛鐨勬枃浠訛紝浠ュ噺灝戠┖闂撮渶姹傘?/p> <p>涓婅堪鍘嬬緝鏂規(guī)硶鐨勬晥鐜囷紙鐢ㄦ墍寰楀帇緙╃巼琛ㄧず錛夊緢澶х▼搴︿笂鍙栧喅浜庨暱孌電殑鍑虹幇棰戠巼銆?/p> <p>渚?-8 鑰冨療鍥?5-3b 鐨?脳4鍥懼儚銆傛寜鐓ц泧褰㈢殑琛屼富嬈″簭錛岀伆搴﹀間緷嬈′負(fù)1 0錛?錛? 2錛? 0錛? 0錛? 5錛? 5錛? 2錛?錛? 0錛?錛? 5錛?1錛? 3 0錛? 6 0鍜? 4 0銆傚悇鍍忕礌鎵闇鐨勪綅鏁板垎鍒負(fù)4錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?錛?鍜?錛屾寜絳夐暱鐨勬潯浠跺皢鍍忕礌鍒嗘錛屽彲浠ュ緱鍒?涓[ 1 0錛?錛? 2 ]銆乕 4 0錛? 0錛? 5 ]銆乕15, 12, 8, 10, 9, 15, 11] 鍜岋薊130, 160, 240錛姐傚洜姝わ紝鏂囦歡SegmentLength 涓?錛?錛?錛?錛涙枃浠禕itsPerSegment 鐨勫唴瀹逛負(fù)3錛?錛?錛?錛涙枃浠禤 i x e l s鍖呭惈浜嗘寜铔囧艦琛屼富嬈″簭鎺掑垪鐨? 6涓伆搴﹀鹼紝鍏朵腑澶翠笁涓悇鐢?浣嶅瓨鍌紝鎺ヤ笅鏉ヤ笁涓悇鐢?浣嶏紝鍐嶆帴涓嬫潵鐨勪竷涓悇鐢?浣嶏紝鏈鍚庝笁涓悇鐢?浣嶅瓨鍌ㄣ傚洜姝ゅ瓨鍌ㄥ崟鍏冧腑鍓? 0浣嶅瓨鍌ㄤ簡鍓嶅叚涓儚绱狅細(xì)</p> <p>1010 1001 1100 111000 110010 100011</p> <p>榪欎笁涓枃浠墮渶瑕佺殑瀛樺偍絀洪棿鍒嗗埆涓猴細(xì)鏂囦歡SegmentLength 闇3 2浣嶏紱BitsPerSegment 闇1 2浣嶏紱Pixels 闇8 2浣嶏紝鍏遍渶1 2 6浣嶃傝屽鏋滄瘡涓儚绱犻兘鐢?浣嶅瓨鍌紝鍒欏瓨鍌ㄧ┖闂撮渶8脳1 6 = 1 2 8浣嶏紝鍥犺屽湪鏈緥鍥懼儚涓紝鑺傜渷浜?浣嶇殑絀洪棿銆?/p> <p>鍋囪鍦?) 涔嬪悗錛屼駭鐢熶簡n 涓銆傛鏍囬錛坰egment header錛夌敤浜庡瓨鍌ㄦ鐨勯暱搴︿互鍙?qiáng)璇D典腑姣忎釜鍍忕礌鎵鍗犵敤鐨勪綅鏁般傛瘡涓鏍囬闇11浣嶃傜幇鍋囪li 鍜宐i 鍒嗗埆琛ㄧず絎琲 孌電殑孌甸暱鍜岃孌墊瘡涓儚绱犵殑闀垮害錛屽垯瀛樺偍絎琲 孌靛儚绱犳墍闇瑕佺殑絀洪棿涓簂i *bi 銆傚湪2) 涓墍寰楃殑涓変釜鏂囦歡鐨勬誨瓨鍌ㄧ┖闂翠負(fù)11 n+n ?i = 1li bi銆傚彲閫氳繃灝嗘煇浜涚浉閭繪鍚堝茍鐨勬柟寮忔潵鍑忓皯絀洪棿娑堣椼傚褰撴i 鍜宨+ 1琚悎騫舵椂錛屽悎騫跺悗鐨勬闀垮簲涓簂i +li + 1銆傛鏃舵瘡涓儚绱犵殑瀛樺偍浣嶆暟涓簃 a x {bi錛宐i +1 } 浣嶃傚敖綆¤繖縐嶆妧鏈鍔犱簡鏂囦歡P i x e l s鐨勭┖闂存秷鑰楋紝浣嗗悓鏃朵篃鍑忓皯浜嗕竴涓鏍囬鐨勭┖闂淬?/p> <p>渚?-9 濡傛灉灝嗕緥1 5 - 8涓殑絎?孌靛拰絎?孌靛悎騫訛紝鍚堝茍鍚庯紝鏂囦歡S e g m e n t L e n g t h鍙樹負(fù)5錛?錛?錛孊itsPerSegment 鍙樹負(fù)5錛?錛?銆傝屾枃浠禤ixels 鐨勫墠3 6浣嶅瓨鍌ㄧ殑鏄悎騫跺悗鐨勭涓孌碉細(xì)001010 001001 001100 111000 110010 100011鍏朵綑鐨勫儚绱狅紙渚? 5 - 8絎?孌碉級娌℃湁鏀瑰彉銆傚洜涓哄噺灝戜簡1涓鏍囬錛屾枃浠禨 e g m e n t L e n g t h鍜孊itsPerPixel 鐨勭┖闂存秷鑰楀叡鍑忓皯浜?1浣嶏紝鑰屾枃浠禤ixels 鐨勭┖闂村鍔?浣嶏紝鍥犳鎬誨叡鑺傜害鐨勭┖闂翠負(fù)5浣嶏紝絀洪棿鎬繪秷鑰椾負(fù)1 2 1浣嶃?/p> <p>鎴戜滑甯屾湜鑳借璁′竴縐嶇畻娉曪紝浣垮緱鍦ㄤ駭鐢焠 涓涔嬪悗錛岃兘瀵圭浉閭繪榪涜鍚堝茍錛屼互渚夸駭鐢熶竴涓叿鏈夋渶灝忕┖闂撮渶姹傜殑鏂扮殑孌甸泦鍚堛傚湪鍚堝茍鐩擱偦孌典箣鍚庯紝鍙埄鐢ㄨ濡侺 Z W娉曪紙瑙? . 5鑺傦級鍜岄湇澶浖緙栫爜錛堣9 . 5 . 3鑺傦級絳夊叾浠栨妧鏈潵榪涗竴姝ュ帇緙╄繖涓変釜鏂囦歡銆?/p> <p>浠q 涓哄墠q 涓鐨勬渶浼樺悎騫舵墍闇瑕佺殑絀洪棿銆傚畾涔塻0 = 0銆傝冭檻絎琲 孌?i錛? )錛屽亣濡傚湪鏈浼樺悎騫禖涓紝絎琲 孌典笌絎琲- 1錛宨- 2錛?錛宨-r+1 孌電浉鍚堝茍錛岃屼笉鍖呮嫭絎琲-r 孌點(diǎn)傚悎騫禖鎵闇瑕佺殑絀洪棿娑堣楃瓑浜庯細(xì)絎?孌靛埌絎琲-r 孌墊墍闇絀洪棿+ l s u m (i-r+ 1 ,i) * b m a x (i-r+ 1 ,i) + 11</p> <p>鍏朵腑l s u m(a, b)=b ?j =a</p> <p>lj錛宐max (a, b)= m a x {ba , ..., bb }銆傚亣濡傚湪C涓1孌靛埌絎琲-r 孌電殑鍚堝茍涓嶆槸鏈浼樺悎騫訛紝閭d箞闇瑕佸鍚堝茍榪涜淇敼錛屼互浣垮叾鍏鋒湁鏇村皬鐨勭┖闂撮渶姹傘傚洜姝よ繕蹇呴』瀵規(guī)1鍒版i-r 榪涜鏈浼樺悎騫訛紝涔熷嵆淇濊瘉鏈浼樺師鍒欏緱浠ョ淮鎸併傛晠C鐨勭┖闂存秷鑰椾負(fù)錛?/p> <p>si = si-r +l s u m錛坕-r+1, i錛?b m a x錛坕-r+1, i錛? 11</p> <p>r 鐨勫間粙浜?鍒癷 涔嬮棿錛屽叾涓姹俵 s u m涓嶈秴榪? 5 6 (鍥犱負(fù)孌甸暱闄愬埗鍦? 5 6涔嬪唴)銆傚敖綆℃垜浠笉鐭ラ亾濡備綍閫夋嫨r錛屼絾鎴戜滑鐭ラ亾錛岀敱浜嶤鍏鋒湁鏈灝忕殑絀洪棿闇姹傦紝鍥犳鍦ㄦ墍鏈夐夋嫨涓紝 r 蹇呴』浜х敓鏈灝忕殑絀洪棿闇姹傘?/p> <p>鍋囧畾k a yi 琛ㄧず鍙栧緱鏈灝忓兼椂k 鐨勫鹼紝sn 涓簄 孌電殑鏈浼樺悎騫舵墍闇瑕佺殑絀洪棿錛屽洜鑰屼竴涓渶浼樺悎騫跺彲鐢╧ay 鐨勫兼瀯閫犲嚭鏉ャ?/p> <p>渚?-10 鍋囧畾鍦?) 涓緱鍒頒簲涓錛屽畠浠殑闀垮害涓篬 6錛?錛? 0錛?錛? ]錛屽儚绱犱綅鏁頒負(fù)[ 1錛?錛?錛?錛? ]錛岃鐢ㄥ叕寮忥紙1 5 - 3錛夎綆梥n錛屽繀欏誨厛姹傚嚭sn-1錛?錛宻0 鐨勫箋俿0 涓?錛岀幇璁$畻s1錛歴1 =s0 +l1 *b1+ 11 = 1 7k a y1 = 1s2 鐢變笅寮忓緱鍑猴細(xì)</p> <p>s2 = m i n {s1 +l2 b2 , s0 + (l1 +l2 ) * m a x {b1 , b2} } + 11 = m i n { 1 7 + 6 , 0 + 9 * 2 } + 11 = 2 9</p> <p>k a y2 = 2</p> <p>浠ユ綾繪帹錛屽彲寰梥1.s5 = [ 1 7錛? 9錛? 7錛? 3錛?2] 錛宬 a y1.k a y5 = [ 1錛?錛?錛?錛? ]銆傚洜涓簊5 = 8 2錛屾墍浠ユ渶浼樼┖闂村悎騫墮渶8 2浣嶇殑絀洪棿銆傚彲鐢眐 a y5 瀵煎嚭鏈悎騫剁殑鏂瑰紡錛岃繃紼嬪涓嬶細(xì)鍥犱負(fù)k a y5 = 4錛屾墍浠5 鏄敱鍏紡錛? 5 - 3錛夊湪k=4 鏃跺彇寰楃殑錛屽洜鑰屾渶浼樺悎騫跺寘鎷細(xì)孌?鍒版( 5 - 4 ) = 1鐨勬渶浼樺悎騫朵互鍙?qiáng)娈?錛?錛?鍜?鐨勫悎騫躲傛渶鍚庝粎鍓╀笅涓や釜孌碉細(xì)孌?浠ュ強(qiáng)孌?鍒版5鐨勫悎騫舵銆?/p> <p>1. 閫掑綊鏂規(guī)硶</p> <p>鐢ㄩ掑綊寮忥紙1 5 - 3錛夊彲浠ラ掑綊鍦扮畻鍑簊i 鍜宬 a yi銆傜▼搴? 5 - 3涓洪掑綊寮忕殑璁$畻浠g爜銆俵錛宐錛屽拰k a y鏄竴緇寸殑鍏ㄥ眬鏁村瀷鏁扮粍錛孡鏄闀塊檺鍒訛紙 2 5 6錛夛紝h e a d e r涓烘鏍囬鎵闇鐨勭┖闂? 11 )銆傝皟鐢⊿ ( n )榪斿洖sn 鐨勫間笖鍚屾椂寰楀嚭k a y鍊箋傝皟鐢═r a c e b a c k ( k a y, n )鍙緱鍒版渶浼樺悎騫躲?/p> <p>鐜拌璁虹▼搴? 5 - 3鐨勫鏉傛с倀( 0 ) =c錛坈 涓轟竴涓父鏁幫級錛?錛坣錛?錛夛紝鍥犳鍒╃敤閫掑綊鐨勬柟娉曞彲寰梩 (n) = O ( 2n )銆俆r a c e b a c k鐨勫鏉傛т負(fù)(n)銆?/p> <p>紼嬪簭15-3 閫掑綊璁$畻s , k a y鍙?qiáng)鏈浼樺悎騫?/p> <p>int S(int i)</p> <p>{ / /榪斿洖S ( i )騫惰綆梜 a y [ i ]</p> <p>if (i == 0 ) return 0;</p> <p>//k = 1鏃? 鏍規(guī)嵁鍏紡錛?1 5 - 3錛夎綆楁渶灝忓?/p> <p>int lsum = l[i],bmax = b[i];</p> <p>int s = S(i-1) + lsum * bmax;</p> <p>kay[i] = 1;</p> <p>/ /瀵瑰叾浣欑殑k璁$畻鏈灝忓煎茍姹傚彇鏈灝忓?/p> <p>for (int k = 2; k <= i && lsum+l[i-k+1] <= L; k++) {</p> <p>lsum += l[i-k+1];</p> <p>if (bmax < b[i-k+1]) bmax = b[i-k+1];</p> <p>int t = S(i-k);</p> <p>if (s > t + lsum * bmax) {</p> <p>s = t + lsum * bmax;</p> <p>kay[i] = k;}</p> <p>}</p> <p>return s + header;</p> <p>}</p> <p>void Traceback(int kay[], int n)</p> <p>{// 鍚堝茍孌?/p> <p>if (n == 0) return;</p> <p>Tr a c e b a c k ( k a y, n-kay[n]);</p> <p>cout << "New segment begins at " << (n - kay[n] + 1) << endl;</p> <p>}</p> <p>2. 鏃犻噸澶嶈綆楃殑閫掑綊鏂規(guī)硶</p> <p>閫氳繃閬垮厤閲嶅璁$畻si錛屽彲灝嗗嚱鏁癝鐨勫鏉傛у噺灝戝埌(n)銆傛敞鎰忚繖閲屽彧鏈塶涓笉鍚岀殑si銆?/p> <p>渚? - 11 鍐嶈冨療渚? 5 - 1 0涓簲涓鐨勪緥瀛愩傚綋璁$畻s5 鏃訛紝鍏堥氳繃閫掑綊璋冪敤鏉ヨ綆梥4錛?錛宻0銆傝綆梥4 鏃訛紝閫氳繃閫掑綊璋冪敤璁$畻s3錛?錛宻0錛屽洜姝4 鍙綆椾簡涓嬈★紝鑰宻3 璁$畻浜嗕袱嬈★紝姣忎竴嬈¤綆梥3瑕佽綆椾竴嬈2錛屽洜姝2 鍏辮綆椾簡鍥涙錛岃宻1 閲嶅璁$畻浜? 6嬈★紒鍙埄鐢ㄤ竴涓暟緇剆 鏉ヤ繚瀛樺厛鍓嶈綆楄繃鐨剆i 浠ラ伩鍏嶉噸澶嶈綆椼傛敼榪涘悗鐨勪唬鐮佽紼嬪簭1 5 - 4錛屽叾涓璼涓哄垵鍊間負(fù)0鐨勫叏灞鏁村瀷鏁扮粍銆?/p> <p>紼嬪簭15-4 閬垮厤閲嶅璁$畻鐨勯掑綊綆楁硶</p> <p>int S(int i)</p> <p>{ / /璁$畻S ( i )鍜宬 a y [ i ]</p> <p>/ /閬垮厤閲嶅璁$畻</p> <p>if (i == 0) return 0;</p> <p>if (s[i] > 0) return s[i]; //宸茶綆楀畬</p> <p>/ /璁$畻s [ i ]</p> <p>/ /棣栧厛鏍規(guī)嵁鍏紡錛? 5 - 3錛夎綆梜 = 1鏃舵渶灝忓?/p> <p>int lsum = l[i], bmax = b[i];</p> <p>s[i] =S(i-1) + lsum * bmax;</p> <p>kay[i] = 1;</p> <p>/ /瀵瑰叾浣欑殑k璁$畻鏈灝忓煎茍鏇存柊</p> <p>for (int k = 2; k <= i && lsum+l[i-k+1] <= L; k++) {</p> <p>lsum += l[i-k+1];</p> <p>if (bmax < b[i-k+1]) bmax = b[i-k+1];</p> <p>int t = S(i-k);</p> <p>if (s[i] > t + lsum * bmax) {</p> <p>s[i] = t + lsum * bmax;</p> <p>kay[i] = k;}</p> <p>}</p> <p>s[i] += header;</p> <p>return s[i];</p> <p>}</p> <p>涓轟簡紜畾紼嬪簭1 5 - 4鐨勬椂闂村鏉傛э紝鎴戜滑灝嗕嬌鐢ㄥ垎鏈熻綆楁ā寮忥紙 amortization scheme錛夈傚湪璇ユā寮忎腑錛屾繪椂闂磋鍒嗚В涓鴻嫢騫蹭釜涓嶅悓欏癸紝閫氳繃璁$畻鍚勯」鐨勬椂闂寸劧鍚庢眰鍜屾潵鑾峰緱鎬繪椂闂淬傚綋璁$畻si 鏃訛紝鑻j 榪樻湭綆楀嚭錛屽垯鎶婅皟鐢⊿(j) 鐨勬秷鑰楄鍏j 錛涜嫢sj 宸茬畻鍑猴紝鍒欐妸S(j) 鐨勬秷鑰楄鍏i (榪欓噷sj渚濇鎶婅綆楁柊sq 鐨勬秷鑰楄漿縐昏嚦姣忎釜sq )銆傜▼搴? 5 - 4鐨勫叾浠栨秷鑰椾篃琚鍏i銆傚洜涓篖鏄? 5 6涔嬪唴鐨勫父鏁頒笖姣忎釜li 鑷沖皯涓?錛屾墍浠ョ▼搴? 5 - 4鐨勫叾浠栨秷鑰椾負(fù)( 1 )錛屽嵆璁″叆姣忎釜si 鐨勯噺鏄竴涓父鏁幫紝涓攕i 鏁扮洰涓簄錛屽洜鑰屾誨伐浣滈噺涓?n)銆?/p> <p>3. 榪唬鏂規(guī)硶</p> <p>鍊樿嫢鐢ㄥ紡錛? 5 - 3錛変緷搴忚綆梥1 , ., sn錛屼究鍙緱鍒頒竴涓鏉傛т負(fù)(n)鐨勮凱浠f柟娉曘傚湪璇ユ柟娉曚腑錛屽湪si 璁$畻涔嬪墠錛?sj 蹇呴』宸茶綆楀ソ銆傝鏂規(guī)硶鐨勪唬鐮佽紼嬪簭1 5 - 5錛屽叾涓粛鍒╃敤鍑芥暟Tr a c e b a c k錛堣紼嬪簭1 5 - 3錛夋潵鑾峰緱鏈浼樺悎騫躲?/p> <p>紼嬪簭15-5 榪唬璁$畻s鍜宬 a y</p> <p>void Vbits (int l[], int b[], int n, int s[], int kay[])</p> <p>{ / /璁$畻s [ i ]鍜宬 a y [ i ]</p> <p>int L = 256, header = 11 ;</p> <p>s[0] = 0;</p> <p>/ /鏍規(guī)嵁寮忥紙1 5 - 3錛夎綆梥 [ i ]</p> <p>for (int i = 1; i <= n; i++) {</p> <p>// k = 1鏃?璁$畻鏈灝忓?/p> <p>int lsum = l,</p> <p>bmax = b[i];</p> <p>s[i] = s[i-1] + lsum * bmax;</p> <p>kay[i] = 1;</p> <p>/ /瀵瑰叾浣欑殑k璁$畻鏈灝忓煎茍鏇存柊</p> <p>for (int k=2; k<= i && lsum+l[i-k+1]<= L; k++) {</p> <p>lsum += l[i-k+1];</p> <p>if (bmax < b[i-k+1]) bmax = b[i-k+1];</p> <p>if (s[i] > s[i-k] + lsum * bmax){</p> <p>s[i] = s[i-k] + lsum * bmax;</p> <p>kay[i] = k; }</p> <p>}</p> <p>s[i] += header;</p> <p>}</p> <p>}</p> <p> <br />3.2.3 鐭╅樀涔樻硶閾?/p> <p>m脳n鐭╅樀A(chǔ)涓巒脳p鐭╅樀B鐩鎬箻闇鑰楄垂(m n p)鐨勬椂闂達(dá)紙瑙佺2绔犵粌涔? 6錛夈傛垜浠妸m n p浣滀負(fù)涓や釜鐭╅樀鐩鎬箻鎵闇鏃墮棿鐨勬祴閲忓箋傜幇鍋囧畾瑕佽綆椾笁涓煩闃礎(chǔ)銆丅鍜孋鐨勪箻縐紝鏈変袱縐嶆柟寮忚綆楁涔樼Н銆傚湪絎竴縐嶆柟寮忎腑錛屽厛鐢ˋ涔樹互B寰楀埌鐭╅樀D錛岀劧鍚嶥涔樹互C寰楀埌鏈緇堢粨鏋滐紝榪欑涔樻硶鐨勯『搴忓彲鍐欎負(fù)(A*B) *C銆傜浜岀鏂瑰紡鍐欎負(fù)A* (B*C) ,閬撶悊鍚屼笂銆傚敖綆¤繖涓ょ涓嶅悓鐨勮綆楅『搴忔墍寰楃殑緇撴灉鐩稿悓錛屼絾鏃墮棿娑堣椾細(xì)鏈夊緢澶х殑宸窛銆?/p> <p>渚?-12 鍋囧畾A涓? 0 0脳1鐭╅樀錛孊涓?脳1 0 0鐭╅樀錛孋涓? 0 0脳1鐭╅樀錛屽垯A*B鐨勬椂闂磋楄垂涓?0 0 0 0錛屽緱鍒扮殑緇撴灉D涓? 0 0脳1 0 0鐭╅樀錛屽啀涓嶤鐩鎬箻鎵闇鐨勬椂闂磋楄垂涓? 000 000錛屽洜姝よ綆?A*B) *C鐨勬繪椂闂翠負(fù)1 010 000銆侭*C鐨勬椂闂磋楄垂涓?0 000錛屽緱鍒扮殑涓棿鐭╅樀涓?脳1鐭╅樀錛屽啀涓嶢鐩鎬箻鐨勬椂闂存秷鑰椾負(fù)1 0 0錛屽洜鑰岃綆桝*錛圔*C錛夌殑鏃墮棿鑰楄垂绔熷彧鏈?0 100錛佽屼笖錛岃綆楋紙 A*B錛?C鏃訛紝榪橀渶10 000涓崟鍏冩潵瀛樺偍A*B錛岃孉*錛圔*C錛夎綆楄繃紼嬩腑錛屽彧闇鐢?涓崟鍏冩潵瀛樺偍B*C銆?/p> <p>涓嬮潰涓句竴涓緱鐩婁簬閫夋嫨鍚堥傜З搴忚綆桝*B*C鐭╅樀鐨勫疄渚嬶細(xì)鑰冭檻涓や釜3緇村浘鍍忕殑鍖歸厤銆傚浘鍍忓尮閰嶉棶棰樼殑瑕佹眰鏄紝紜畾涓涓浘鍍忛渶鏃嬭漿銆佸鉤縐誨拰緙╂斁澶氬皯嬈℃墠鑳介艱繎鍙︿竴涓浘鍍忋傚疄鐜板尮閰嶇殑鏂規(guī)硶涔嬩竴渚挎槸鎵ц綰? 0 0嬈¤凱浠h綆楋紝姣忔榪唬闇璁$畻1 2脳1涓悜閲廡錛?/p> <p>T=?A(x, y, z) *B(x, y, z)*C(x, y, z )</p> <p>鍏朵腑A錛孊鍜孋鍒嗗埆涓? 2脳3錛?脳3鍜?脳1鐭╅樀銆?x , y, z) 涓虹煩闃典腑鍚戦噺鐨勫潗鏍囥傝t 琛ㄧず璁$畻A(x , y, z) *B(x , y, z) *C(x , y, z)鐨勮綆楅噺銆傚亣瀹氭鍥懼儚鍚? 5 6脳2 5 6脳2 5 6涓悜閲忥紝鍦ㄦ鏉′歡涓紝榪? 0 0涓凱浠f墍闇鐨勬昏綆楅噺榪戜技涓? 0 0 * 2 5 63 * t鈮? . 7 * 1 09 t銆傝嫢涓変釜鐭╅樀鏄寜鐢卞乏鍚戝彸鐨勯『搴忕浉涔樼殑錛屽垯t = 1 2 * 3 * 3 + 1 2 * 3 *1= 1 4 4錛涗絾濡傛灉浠庡彸鍚戝乏鐩鎬箻錛?t = 3 * 3 * 1 + 1 2 * 3 * 1 = 4 5銆傜敱宸﹁嚦鍙寵綆楃害闇2 . 4 * 1 011涓搷浣滐紝鑰岀敱鍙寵嚦宸﹁綆楀ぇ姒傚彧闇7 . 5 * 1 01 0涓搷浣溿傚亣濡備嬌鐢ㄤ竴涓瘡縐掑彲鎵ц1浜挎鎿嶄綔鐨勮綆楁満錛岀敱宸﹁嚦鍙抽渶4 0鍒嗛挓錛岃岀敱鍙寵嚦宸﹀彧闇1 2 . 5鍒嗛挓銆?/p> <p>鍦ㄨ綆楃煩闃佃繍綆桝*B*C鏃訛紝浠呮湁涓ょ涔樻硶欏哄簭錛堢敱宸﹁嚦鍙蟲垨鐢卞彸鑷沖乏錛夛紝鎵浠ュ彲浠ュ緢瀹規(guī)槗綆楀嚭姣忕欏哄簭鎵闇瑕佺殑鎿嶄綔鏁幫紝騫墮夋嫨鎿嶄綔鏁版瘮杈冨皯鐨勯偅縐嶄箻娉曢『搴忋備絾瀵逛簬鏇村鐭╅樀鐩鎬箻鏉ヨ錛屾儏鍐佃澶嶆潅寰楀銆傚璁$畻鐭╅樀涔樼НM1脳M2脳.脳Mq錛屽叾涓璏i 鏄竴涓猺i脳ri + 1 鐭╅樀( 1鈮鈮)銆備笉濡ㄨ冭檻q=4 鐨勬儏鍐碉紝姝ゆ椂鐭╅樀榪愮畻A*B*C*D鍙寜浠ヤ笅鏂瑰紡錛堥『搴忥級璁$畻錛?/p> <p>A* ( (B*C) *D) A* (B* (C*D)) (A*B) * (C*D) (A* (B*C) ) *D</p> <p>涓嶉毦鐪嬪嚭璁$畻鐨勬柟娉曟暟浼?xì)闅弎 浠ユ寚鏁扮駭澧炲姞銆傚洜姝わ紝瀵逛簬寰堝ぇ鐨剄 鏉ヨ錛岃冭檻姣忎竴縐嶈綆楅『搴忓茍閫夋嫨鏈浼樿呭凡鏄笉鍒囧疄闄呯殑銆?/p> <p>鐜板湪瑕佷粙緇嶄竴縐嶉噰鐢ㄥ姩鎬佽鍒掓柟娉曡幏寰楃煩闃典箻娉曟搴忕殑鏈浼樼瓥鐣ャ傝繖縐嶆柟娉曞彲灝嗙畻娉曠殑鏃墮棿娑堣楅檷涓?q3 )銆傜敤Mi j 琛ㄧず閾綧i脳.脳Mj 錛坕鈮錛夌殑涔樼Н銆傝c(i,j) 涓虹敤鏈浼樻硶璁$畻Mi j 鐨勬秷鑰楋紝k a y(i, j) 涓虹敤鏈浼樻硶璁$畻Mi j 鐨勬渶鍚庝竴姝i k脳Mk+1, j 鐨勬秷鑰椼傚洜姝ij 鐨勬渶浼樼畻娉曞寘鎷浣曠敤鏈浼樼畻娉曡綆桵ik 鍜孧kj 浠ュ強(qiáng)璁$畻Mik脳Mkj 銆傛牴鎹渶浼樺師鐞嗭紝鍙緱鍒板涓嬬殑鍔ㄦ佽鍒掗掑綊寮忥細(xì)k a y(i,i+s)= 鑾峰緱涓婅堪鏈灝忓肩殑k. 浠ヤ笂姹俢 鐨勯掑綊寮忓彲鐢ㄩ掑綊鎴栬凱浠g殑鏂規(guī)硶鏉ユ眰瑙c俢( 1錛宷) 涓虹敤鏈浼樻硶璁$畻鐭╅樀閾劇殑娑堣楋紝k a y( 1 ,q) 涓烘渶鍚庝竴姝ョ殑娑堣椼傚叾浣欑殑涔樼Н鍙敱k a y鍊兼潵紜畾銆?/p> <p>1. 閫掑綊鏂規(guī)硶</p> <p>涓庢眰瑙? / 1鑳屽寘鍙?qiáng)鍥惧儚鍘嬀~╅棶棰樹竴鏍鳳紝鏈掑綊鏂規(guī)硶涔熼』閬垮厤閲嶅璁$畻c (i, j) 鍜宬 a y(i, j)錛屽惁鍒欑畻娉曠殑澶嶆潅鎬у皢浼?xì)闈炲笖R珮銆?/p> <p>渚?-13 璁緌= 5鍜宺 =錛? 0 , 5 , 1 , 1 0 , 2 , 1 0錛夛紝寮忎腑寰呮眰鐨刢 涓湁鍥涗釜c鐨剆= 0鎴?錛屽洜姝ょ敤鍔ㄦ佽鍒掓柟娉曞彲绔嬪嵆姹傚緱瀹冧滑鐨勫鹼細(xì) c( 1 , 1 ) =c( 5 , 5 ) = 0 ;c(1,2)=50; c( 4 , 5 ) = 2 0 0銆傜幇璁$畻C( 2錛? )錛歝( 2 , 5 ) = m i n {c( 2 , 2 ) +c(3,5)+50, c( 2 , 3 ) +c(4,5)+500, c( 2 , 4 ) +c( 5 , 5 ) + 1 0 0 } 錛? 5 - 5錛夊叾涓璫( 2 , 2 ) =c( 5 , 5 ) = 0錛沜( 2 , 3 ) = 5 0錛沜(4,5)=200 銆傚啀鐢ㄩ掑綊寮忚綆梒( 3 , 5 )鍙?qiáng)c( 2 , 4 ) :c( 3 , 5 ) = m i n {c( 3 , 3 ) +c(4,5)+100, c( 3 , 4 ) +c( 5 , 5 ) + 2 0 } = m i n { 0 + 2 0 0 + 1 0 0 , 2 0 + 0 + 2 0 } = 4 0c( 2 , 4 ) = m i n {c( 2 , 2 ) +c( 3 , 4 ) + 1 0 ,c( 2 , 3 ) +c( 4 , 4 ) + 1 0 0 } = m i n { 0 + 2 0 + 1 0 , 5 0 + 1 0 + 2 0 } = 3 0鐢變互涓婅綆楄繕鍙緱k a y( 3 , 5 ) = 4錛宬 ay( 2 , 4 ) = 2銆傜幇鍦?璁$畻c(2,5) 鎵闇鐨勬墍鏈変腑闂村奸兘宸叉眰寰楋紝灝嗗畠浠唬鍏ュ紡錛? 5 - 5錛夊緱錛?/p> <p>c(2,5)=min{0+40+50, 50+200+500, 30+0+100}=90涓攌 a y( 2 , 5 ) = 2</p> <p>鍐嶇敤寮忥紙1 5 - 4錛夎綆梒( 1 , 5 )錛屽湪姝や箣鍓嶅繀欏葷畻鍑篶( 3 , 5 )銆乧(1,3) 鍜宑( 1 , 4 )銆傚悓涓婅堪榪囩▼錛屼害鍙綆楀嚭瀹冧滑鐨勫煎垎鍒負(fù)4 0銆? 5 0鍜? 0錛岀浉搴旂殑k a y 鍊煎垎鍒負(fù)4銆?鍜?銆備唬鍏ュ紡錛? 5 - 4錛夊緱錛?/p> <p>c(1,5)=min{0+90+500, 50+40+100, 150+200+1000, 90+0+200}=190涓攌 a y( 1 , 5 ) = 2</p> <p>姝ゆ渶浼樹箻娉曠畻娉曠殑娑堣椾負(fù)1 9 0錛岀敱k a y(1,5) 鍊煎彲鎺ㄥ嚭璇ョ畻娉曠殑鏈鍚庝竴姝ワ紝 k a y(1,5) 絳変簬2錛屽洜姝ゆ渶鍚庝竴姝ヤ負(fù)M1 2脳M3 5錛岃孧12 鍜孧35 閮芥槸鐢ㄦ渶浼樻硶璁$畻鑰屾潵銆傜敱k a y( 1 , 2 ) = 1鐭12 絳変簬M11脳M2 2錛屽悓鐞嗙敱k a y( 3 , 5) = 4寰楃煡M35 鐢盡3 4脳M55 綆楀嚭銆備緷姝ょ被鎺紝M34 鐢盡3 3脳M44 寰楀嚭銆傚洜鑰屾鏈浼樹箻娉曠畻娉曠殑姝ラ涓猴細(xì)</p> <p>M11脳M2 2 = M1 2</p> <p>M3 3脳M4 4 = M3 4</p> <p>M3 4脳M5 5 = M3 5</p> <p>M1 2脳M3 5 = M1 5</p> <p>璁$畻c(i, j) 鍜宬 a y (i, j) 鐨勯掑綊浠g爜瑙佺▼搴? 5 - 6銆傚湪鍑芥暟C涓紝r 涓哄叏灞涓緇存暟緇勫彉閲忥紝 k a y鏄叏灞浜岀淮鏁扮粍鍙橀噺錛屽嚱鏁癈榪斿洖c(i j) 涔嬪間笖緗甼 a y [a] [b] =k ay (a , b) (瀵逛簬浠諱綍a , b)錛屽叾涓璫(a , b)鍦ㄨ綆梒(i,j) 鏃剁殕宸茬畻鍑恒傚嚱鏁癟raceback 鍒╃敤鍑芥暟C涓凡綆楀嚭鐨刱 a y鍊兼潵鎺ㄥ鍑烘渶浼樹箻娉曠畻娉曠殑姝ラ銆?/p> <p>璁総(q)涓哄嚱鏁癈鐨勫鏉傛э紝鍏朵腑q=j-i+ 1錛堝嵆Mij 鏄痲涓煩闃佃繍綆楃殑緇撴灉錛夈傚綋q涓?鎴?鏃訛紝t(q) =d錛屽叾涓璬 涓轟竴甯告暟錛涜宷> 2鏃訛紝t (q)=2q-1?k = 1t (k ) +e q錛屽叾涓璭 鏄竴涓父閲忋傚洜姝ゅ綋q錛?鏃訛紝t(q)錛?t (q- 1 ) +e錛屾墍浠 (q)= W ( 2q)銆傚嚱鏁癟raceback 鐨勫鏉傛т負(fù)(q)銆?/p> <p>紼嬪簭15-6 閫掑綊璁$畻c (i, j) 鍜宬ay (i, j)</p> <p>int C(int i, int j)</p> <p>{ / /榪斿洖c(i,j) 涓旇綆梜(i,j) = kay[i][j]</p> <p>if (i==j) return 0; //涓涓煩闃電殑鎯呭艦</p> <p>if (i == j-1) { //涓や釜鐭╅樀鐨勬儏褰?/p> <p>kay[i][i+1] = i;</p> <p>return r[i]*r[i+1]*r[r+2];}</p> <p>/ /澶氫簬涓や釜鐭╅樀鐨勬儏褰?/p> <p>/ /璁緐涓簁 = i 鏃剁殑鏈灝忓?/p> <p>int u = C(i,i) + C(i+1,j) + r[i]*r[i+1]*r[j+1];</p> <p>kay[i][j] = i;</p> <p>/ /璁$畻鍏朵綑鐨勬渶灝忓煎茍鏇存柊u</p> <p>for (int k = i+1; k < j; k++) {</p> <p>int t = C(i,k) + C(k+1,j) + r[i]*r[k+1]*r[j+1];</p> <p>if (r < u) {//灝忎簬鏈灝忓肩殑鎯呭艦</p> <p>u = t;</p> <p>kay[i][j] = k;</p> <p>}</p> <p>return u;</p> <p>}</p> <p>void Traceback (int i, int j ,int **kay)</p> <p>{ / /杈撳嚭璁$畻Mi j 鐨勬渶浼樻柟娉?/p> <p>if ( i == j) return;</p> <p>Traceback(i, kay[i][j], kay);</p> <p>Traceback(kay[i][j]+1, j, kay);</p> <p>cout << "Multiply M" << i << ", "<< kay[i][j];</p> <p>cout << " and M " << (kay[i][j]+1) << ", " << j << end1;</p> <p>}</p> <p>2. 鏃犻噸澶嶈綆楃殑閫掑綊鏂規(guī)硶</p> <p>鑻ラ伩鍏嶅啀嬈¤綆楀墠闈㈠凡緇忚綆楄繃鐨刢錛堝強(qiáng)鐩稿簲鐨刱 a y錛夛紝鍙皢澶嶆潅鎬ч檷浣庡埌錛坬3錛夈傝屼負(fù)浜嗛伩鍏嶉噸澶嶈綆楋紝闇鐢ㄤ竴涓叏灞鏁扮粍c[ ][ ]瀛樺偍c(i, j) 鍊鹼紝璇ユ暟緇勫垵濮嬪間負(fù)0銆傚嚱鏁癈鐨勬柊浠g爜瑙佺▼搴? 5 - 7錛?/p> <p>紼嬪簭15-7 鏃犻噸澶嶈綆楃殑c (i, j) 璁$畻鏂規(guī)硶</p> <p>int C(int i,int j)</p> <p>{ / /榪斿洖c(i,j) 騫惰綆梜 a y ( i , j ) = k a y [ I ] [ j ]</p> <p>/ /閬垮厤閲嶅璁$畻</p> <p>/ /媯鏌ユ槸鍚﹀凡璁$畻榪?/p> <p>if 錛坈[i][j] >錛?return c[i][j];</p> <p>/ /鑻ユ湭璁$畻,鍒欒繘琛岃綆?/p> <p>if(i==j) return 0; //涓涓煩闃電殑鎯呭艦</p> <p>i f ( i = = j - 1 ) { / /涓や釜鐭╅樀鐨勬儏褰?/p> <p>kay[i][i+1]=i;</p> <p>c [ i ] [ j ] = r [ i ] * r [ i + 1 ] * r [ i + 2 ] ;</p> <p>return c[i][j];}</p> <p>/ /澶氫簬涓や釜鐭╅樀鐨勬儏褰?/p> <p>/ /璁緐涓簁 = i 鏃剁殑鏈灝忓?/p> <p>int u=C(i,i)+C(i+1,j)+r[i]*r[i+1]*r[j+1];</p> <p>k a y [ i ] [ j ] = i ;</p> <p>/ /璁$畻鍏朵綑鐨勬渶灝忓煎茍鏇存柊u</p> <p>for (int k==i+1; k<j;k++){</p> <p>int t=C(i,k)+C(k+1,j)+r[i]*r[k+1]*r[j+1];</p> <p>if (t<u) {// 姣旀渶灝忓艱繕灝?/p> <p>u = t ;</p> <p>k a y [ i ] [ j ] = k ; }</p> <p>}</p> <p>c [ i ] [ j ] = u ;</p> <p>return u;</p> <p>}</p> <p>涓哄垎鏋愭敼榪涘悗鍑芥暟C 鐨勫鏉傛э紝鍐嶆浣跨敤鍒嗘湡璁$畻鏂規(guī)硶銆傛敞鎰忓埌璋冪敤C(1, q) 鏃舵瘡涓猚 (i, j)錛?鈮鈮鈮錛変粎琚綆椾竴嬈°傝璁$畻灝氭湭璁$畻榪囩殑c(a,b)錛岄渶闄勫姞鐨勫伐浣滈噺s =j-i錛?銆傚皢s 璁″叆絎竴嬈¤綆梒 (a, b) 鏃剁殑宸ヤ綔閲忎腑銆傚湪渚濇璁$畻c(a, b) 鏃訛紝榪欎釜s 浼?xì)铦{璁″埌姣忎釜c (a, b) 鐨勭涓嬈¤綆楁椂闂碿 涓紝鍥犳姣忎釜c (i, i) 鍧囪璁″叆s銆傚浜庢瘡涓猻錛屾湁q-s+ 1涓猚(i, j) 闇瑕佽綆楋紝鍥犳鎬葷殑宸ヤ綔娑堣椾負(fù)q-1 ?s=1(q-s+ 1) = (q3 )銆?/p> <p>3. 榪唬鏂規(guī)硶</p> <p>c 鐨勫姩鎬佽鍒掗掑綊寮忓彲鐢ㄨ凱浠g殑鏂規(guī)硶鏉ユ眰瑙c傝嫢鎸塻 = 2錛?錛?錛宷-1 鐨勯『搴忚綆梒 (i, i+s)錛屾瘡涓猚 鍜宬ay 浠呴渶璁$畻涓嬈°?/p> <p>渚?-14 鑰冨療渚? - 1 3涓簲涓煩闃電殑鎯呭喌銆傚厛鍒濆鍖朿 (i, i) (0鈮鈮?) 涓?錛岀劧鍚庡浜巌=1, ., 4鍒嗗埆璁$畻c (i, i+ 1 )銆俢 (1, 2)= r1 r2 r3 = 5 0錛宑 (2, 3)= 5 0錛宑 ( 3,4)=20 鍜宑 (4, 5) = 2 0 0銆傜浉搴旂殑k ay 鍊煎垎鍒負(fù)1錛?錛?鍜?銆?/p> <p>褰搒= 2鏃訛紝鍙緱錛?/p> <p>c( 1 , 3 ) = m i n {c( 1 , 1 ) +c(2,3)+ r1 r2 r4 , c( 1 , 2 ) +c( 3 ,3 )+r1r3r4 }=min</p> <p>=150</p> <p>涓攌 a y( 1 , 3 ) = 2銆傜敤鐩稿悓鏂規(guī)硶鍙眰寰梒( 2 , 4 )鍜宑( 3 , 5 )鍒嗗埆涓? 0鍜? 0錛岀浉搴攌 a y鍊煎垎鍒負(fù)2鍜?銆?/p> <p>褰搒= 3鏃訛紝闇璁$畻c(1,4) 鍜宑( 2 , 5 )銆傝綆梒(2,5) 鎵闇瑕佺殑鎵鏈変腑闂村煎潎宸茬煡(瑙? 1 5 - 5 )寮?錛屼唬鍏ヨ綆楀叕寮忓悗鍙緱c( 2 , 5 ) = 9 0錛宬 a y( 2 , 5 ) = 2銆俢( 1 , 4 )鍙敤鍚屾牱鐨勫叕寮忚綆椼傛渶鍚庯紝褰搒= 4鏃訛紝鍙洿鎺ョ敤錛? 5 - 4錛夊紡鏉ヨ綆梒( 1 , 5 )錛屽洜涓鴻寮忓彸杈規(guī)墍鏈夐」閮藉凡鐭ャ?</p> <p>璁$畻c 鍜宬ay 鐨勮凱浠g▼搴忚鍑芥暟M a t r i x C h a i n錛堣紼嬪簭1 5 - 8錛夛紝璇ュ嚱鏁扮殑澶嶆潅鎬т負(fù)(q3 )銆傝綆楀嚭kay 鍚庡悓鏍峰彲鐢ㄧ▼搴? 5 - 6涓殑Traceback 鍑芥暟鎺ㄧ畻鍑虹浉搴旂殑鏈浼樹箻娉曡綆楄繃紼嬨?/p> <p>紼嬪簭15-8 c 鍜宬ay 鐨勮凱浠h綆?/p> <p>void MatrixChain(int r[], int q, int **c, int **kay)</p> <p>{// 涓烘墍鏈夌殑Mij 璁$畻鑰楄垂鍜宬 a y</p> <p>// 鍒濆鍖朿[i][i], c[i][i+1]鍜宬 a y [ i ] [ i + 1 ]</p> <p>for (int i = 1; i < q; i++) {</p> <p>c[i][i] = 0;</p> <p>c[i][i+1] = r[i]*r[i+1]*r[i+2];</p> <p>kay[i][i+1] = i;</p> <p>}</p> <p>c[q][q] = 0;</p> <p>/ /璁$畻浣欎笅鐨刢鍜宬 a y</p> <p>for (int s = 2; s < q; s++)</p> <p>for (int i = 1; i <= q - s; i++) {</p> <p>// k = i鏃剁殑鏈灝忛」</p> <p>c[i][i+s] = c[i][i] + c[i+1][i+s] + r[i]*r[i+1]*r[i+s+1];</p> <p>kay[i][i+s] = i;</p> <p>// 浣欎笅鐨勬渶灝忛」</p> <p>for (int k = i+1; k < i + s; k++) {</p> <p>int t = c[i][k] + c[k+1][i+s] + r[i]*r[k+1]*r[i+s+1];</p> <p>if (t < c[i][i+s]) {// 鏇村皬鐨勬渶灝忛」</p> <p>c[i][i+s] = t;</p> <p>kay[i][i+s] = k;}</p> <p>}</p> <p>}</p> <p>}</p> <p>3.2.4 鏈鐭礬寰?/p> <p>鍋囪G涓烘湁鍚戝浘錛屽叾涓瘡鏉¤竟閮芥湁涓涓暱搴︼紙鎴栬楄垂錛夛紝鍥句腑姣忔潯鏈夊悜璺緞鐨勯暱搴︾瓑浜庤璺緞涓悇杈圭殑闀垮害涔嬪拰銆傚浜庢瘡瀵歸《鐐?i, j)錛屽湪欏剁偣i 涓巎 涔嬮棿鍙兘鏈夊鏉¤礬寰勶紝鍚勮礬寰勭殑闀垮害鍙兘鍚勪笉鐩稿悓銆傛垜浠畾涔変粠i 鍒癹 鐨勬墍鏈夎礬寰勪腑錛屽叿鏈夋渶灝忛暱搴︾殑璺緞涓轟粠i 鍒癹 鐨勬渶鐭礬寰勩?/p> <p>渚?-15 濡傚浘1 5 - 4鎵紺恒備粠欏剁偣1鍒伴《鐐?鐨勮礬寰勬湁</p> <p>1) 1,2,5,3</p> <p>2) 1,4,3</p> <p>3) 1,2,5,8,6,3</p> <p>4) 1,4,6,3</p> <p>鐢辮鍥懼彲鐭?鍚勮礬寰勭浉搴旂殑闀垮害涓? 0銆? 8銆?銆? 7錛屽洜鑰岃礬寰?) 鏄鍥句腑欏剁偣1鍒伴《鐐?鐨勬渶鐭礬寰勩?/p> <p>鍦ㄦ墍鏈夌偣瀵規(guī)渶鐭礬寰勯棶棰橈紙 a l l - p a i r sshorest-paths problem錛変腑錛岃瀵繪壘鏈夊悜鍥綠涓瘡瀵歸《鐐逛箣闂寸殑鏈鐭礬寰勩備篃灝辨槸璇達(dá)紝瀵逛簬姣忓欏剁偣(i, j)錛岄渶瑕佸鎵句粠i鍒癹 鐨勬渶鐭礬寰勫強(qiáng)浠巎 鍒癷 鐨勬渶鐭礬寰勩傚洜姝ゅ浜庝竴涓猲 涓《鐐圭殑鍥炬潵璇達(dá)紝闇瀵繪壘p =n(n-1) 鏉℃渶鐭礬寰勩傚亣瀹氬浘G涓笉鍚湁闀垮害涓鴻礋鏁扮殑鐜礬錛屽彧鏈夊湪榪欑鍋囪涓嬫墠鍙繚璇丟涓瘡瀵歸《鐐?i, j) 涔嬮棿鎬繪湁涓鏉′笉鍚幆璺殑鏈鐭礬寰勩傚綋鏈夊悜鍥句腑瀛樺湪闀垮害灝忎簬0鐨勭幆璺椂錛屽彲鑳藉緱鍒伴暱搴︿負(fù)錛嶁垶鐨勬洿鐭礬寰勶紝鍥犱負(fù)鍖呭惈璇ョ幆璺殑鏈鐭礬寰勫線寰鍙棤闄愬嬈″湴鍔犱笂姝よ礋闀垮害鐨勭幆璺?/p> <p>璁懼浘G涓璶 涓《鐐圭殑緙栧彿涓?鍒皀銆備護(hù)c (i, j, k)琛ㄧず浠巌 鍒癹 鐨勬渶鐭礬寰勭殑闀垮害錛屽叾涓璳 琛ㄧず璇ヨ礬寰勪腑鐨勬渶澶ч《鐐廣傚洜姝わ紝濡傛灉G涓寘鍚竟<i, j>錛屽垯c(i, j, 0) =杈?lt;i, j> 鐨勯暱搴︼紱鑻= j 錛屽垯c(i,j, 0)=0錛涘鏋淕涓笉鍖呭惈杈?lt;i, j>錛屽垯c (i, j, 0)= +鈭炪俢(i, j, n) 鍒欐槸浠巌 鍒癹 鐨勬渶鐭礬寰勭殑闀垮害銆?/p> <p>渚?-16 鑰冨療鍥? 5 - 4銆傝嫢k=0, 1, 2, 3錛屽垯c (1, 3, k)= 鈭烇紱c (1, 3, 4)= 2 8錛涜嫢k = 5, 6, 7錛屽垯c (1, 3,k) = 1 0錛涜嫢k=8, 9, 10錛屽垯c (1, 3, k) = 9銆傚洜姝?鍒?鐨勬渶鐭礬寰勯暱搴︿負(fù)9銆傚浜庝換鎰弅錛?錛屽浣曠‘瀹歝 (i, j, k) 鍛紵涓棿欏剁偣涓嶈秴榪噆 鐨刬 鍒癹 鐨勬渶鐭礬寰勬湁涓ょ鍙兘錛氳璺緞鍚垨涓嶅惈涓棿欏剁偣k銆傝嫢涓嶅惈錛屽垯璇ヨ礬寰勯暱搴﹀簲涓篶(i, j, k- 1 )錛屽惁鍒欓暱搴︿負(fù)c(i, k, k- 1) +c (k, j, k- 1 )銆俢(i, j, k) 鍙彇涓よ呬腑鐨勬渶灝忓箋傚洜姝ゅ彲寰楀埌濡備笅閫掑綊寮忥細(xì)</p> <p>c( i, j, k)= m i n {c(i, j, k-1), c (i, k, k- 1) +c (k, j, k- 1 ) }錛宬錛?</p> <p>浠ヤ笂鐨勯掑綊鍏紡灝嗕竴涓猭 綰ц繍綆楄漿鍖栦負(fù)澶氫釜k-1 綰ц繍綆楋紝鑰屽涓猭-1 綰ц繍綆楀簲姣斾竴涓猭 綰ц繍綆楃畝鍗曘傚鏋滅敤閫掑綊鏂規(guī)硶姹傝В涓婂紡錛屽垯璁$畻鏈緇堢粨鏋滅殑澶嶆潅鎬у皢鏃犳硶浼伴噺銆備護(hù)t (k) 涓洪掑綊姹傝Вc (i, j, k) 鐨勬椂闂淬傛牴鎹掑綊寮忓彲浠ョ湅鍑簍(k) = 2t(k- 1 ) +c銆傚埄鐢ㄦ浛浠f柟娉曞彲寰梩(n) = ( 2n )銆傚洜姝ゅ緱鍒版墍鏈塩 (i, j, n) 鐨勬椂闂翠負(fù)(n2 2n )銆?/p> <p>褰撴敞鎰忓埌鏌愪簺c (i, j, k-1) 鍊煎彲鑳借浣跨敤澶氭鏃訛紝鍙互鏇撮珮鏁堝湴姹傝Вc (i, j, n)銆傚埄鐢ㄩ伩鍏嶉噸澶嶈綆梒(i, j, k) 鐨勬柟娉曪紝鍙皢璁$畻c 鍊肩殑鏃墮棿鍑忓皯鍒?n3 )銆傝繖鍙氳繃閫掑綊鏂瑰紡錛堣紼嬪簭1 5 - 7鐭╅樀閾鵑棶棰橈級鎴栬凱浠f柟寮忔潵瀹炵幇銆傚嚭榪唬綆楁硶鐨勪吉浠g爜濡傚浘1 5 - 5鎵紺恒?/p> <p>聽</p> <p>/ /瀵繪壘鏈鐭礬寰勭殑闀垮害</p> <p>/ /鍒濆鍖朿錛坕錛宩錛?錛?/p> <p>for 錛坕nt i=1錛?i < = n ; i + +錛?/p> <p>for (int j=1; j<=n; j+ + )</p> <p>c ( i ,j, 0 ) = a ( i ,j); // a 鏄暱搴﹂偦鎺ョ煩闃?/p> <p>/ /璁$畻c ( i ,j, k ) ( 0 < k < = n )</p> <p>for(int k=1;k<=n;k++)</p> <p>for (int i=1;i<=n;i++)</p> <p>for (int j= 1 ;j< = n ;j+ + )</p> <p>if (c(i,k,k-1)+c(k,j, k - 1 ) < c ( i ,j, k - 1 ) )</p> <p>c ( i ,j, k ) = c ( i , k , k - 1 ) + c ( k ,j, k - 1 ) ;</p> <p>else c(i,j, k ) = c ( i ,j, k - 1 ) ;</p> <p>鍥?5-5 鏈鐭礬寰勭畻娉曠殑浼唬鐮?/p> <p>聽</p> <p>娉ㄦ剰鍒板浜庝換鎰廼錛宑(i,k,k) =c(i,k,k- 1 )涓攃(k,i,k) =c(k,i,k- 1 )錛屽洜鑰岋紝鑻ョ敤c(i,j)浠f浛鍥? 5 - 5鐨刢(i,j,k)錛屾渶鍚庢墍寰楃殑c(i,j) 涔嬪煎皢絳変簬c(i,j,n) 鍊箋傛鏃跺浘1 5 - 5鍙敼鍐欐垚紼嬪簭1 5 - 9鐨凜 + +浠g爜銆傜▼搴? 5 - 9涓繕鍒╃敤浜嗙▼搴? 2 - 1涓畾涔夌殑AdjacencyWDigraph 綾匯傚嚱鏁癆llPairs 鍦╟ 涓繑鍥炴渶鐭礬寰勭殑闀垮害銆傝嫢i 鍒癹 鏃犻氳礬錛屽垯c [i] [j]琚祴鍊間負(fù)N o E d g e銆傚嚱鏁癆llPairs 鍚屾椂璁$畻浜唊 a y [ i ] [ j ]錛屽叾涓璳ay[i][j] 琛ㄧず浠巌 鍒癹 鐨勬渶鐭礬寰勪腑鏈澶х殑k 鍊箋傚湪鍚庨潰灝嗙湅鍒板浣曟牴鎹甼ay 鍊兼潵鎺ㄦ柇鍑轟粠涓涓《鐐瑰埌鍙︿竴欏剁偣鐨勬渶鐭礬寰勶紙瑙佺▼搴? 5 - 1 0涓殑鍑芥暟O u t p u t P a t h錛夈?/p> <p>紼嬪簭1 5 - 9鐨勬椂闂村鏉傛т負(fù)(n3 )錛屽叾涓緭鍑轟竴鏉℃渶鐭礬寰勭殑瀹為檯鏃墮棿涓篛 (n)銆?/p> <p>紼嬪簭15-9 c 鍜宬ay 鐨勮綆?/p> <p>template<class T></p> <p>void AdjacencyWDigraph<T>::Allpairs(T **c, int **kay)</p> <p>{ / /鎵鏈夌偣瀵圭殑鏈鐭礬寰?/p> <p>/ /瀵逛簬鎵鏈塱鍜宩錛岃綆梒 [ i ] [ j ]鍜宬 a y [ i ] [ j ]</p> <p>/ /鍒濆鍖朿 [ i ] [ j ] = c錛坕錛宩錛?錛?/p> <p>for (int i = 1; i <= n; i++)</p> <p>for (int j = 1; j <= n; j++) {</p> <p>c[i][j] = a[i][j];</p> <p>kay[i][j] = 0;</p> <p>}</p> <p>for (i = 1; i <= n; i++)</p> <p>c[i][i] = 0;</p> <p>// 璁$畻c[i][j] = c(i,j,k)</p> <p>for (int k = 1; k <= n; k++)</p> <p>for (int i = 1; i <= n; i++)</p> <p>for (int j = 1; j <= n; j++) {</p> <p>T t1 = c[i][k];</p> <p>T t2 = c[k][j];</p> <p>T t3 = c[i][j];</p> <p>if (t1 != NoEdge && t2 != NoEdge && (t3 == NoEdge || t1 + t2 < t3)) {</p> <p>c[i][j] = t1 + t2;</p> <p>kay[i][j] = k;}</p> <p>}</p> <p>}</p> <p>紼嬪簭15-10 杈撳嚭鏈鐭礬寰?/p> <p>void outputPath(int **kay, int i, int j)</p> <p>{// 杈撳嚭i 鍒癹 鐨勮礬寰勭殑瀹為檯浠g爜</p> <p>if (i == j) return;</p> <p>if (kay[i][j] == 0) cout << j << ' ';</p> <p>else {outputPath(kay, i, kay[i][j]);</p> <p>o u t p u t P a t h ( k a y, kay[i][j], j);}</p> <p>}</p> <p>template<class T></p> <p>void OutputPath(T **c, int **kay, T NoEdge, int i, int j)</p> <p>{// 杈撳嚭浠巌 鍒癹鐨勬渶鐭礬寰?/p> <p>if (c[i][j] == NoEdge) {</p> <p>cout << "There is no path from " << i << " to " << j << endl;</p> <p>r e t u r n ; }</p> <p>cout << "The path is" << endl;</p> <p>cout << i << ' ';</p> <p>o u t p u t P a t h ( k a y, i , j ) ;</p> <p>cout << endl;</p> <p>}</p> <p>渚?-17 鍥?5-6a 緇欏嚭鏌愬浘鐨勯暱搴︾煩闃礱錛?5-6b 緇欏嚭鐢辯▼搴? 5 - 9鎵璁$畻鍑虹殑c 鐭╅樀錛?5-6c 涓哄搴旂殑k a y鍊箋傛牴鎹?5-6c 涓殑kay 鍊鹼紝鍙煡浠?鍒?鐨勬渶鐭礬寰勬槸浠?鍒発 a y [ 1 ] [ 5 ] = 4鐨勬渶鐭礬寰勫啀鍔犱笂浠?鍒?鐨勬渶鐭礬寰勶紝鍥犱負(fù)k a y [ 4 ] [ 5 ] = 0錛屾墍浠ヤ粠4鍒?鐨勬渶鐭礬寰勬棤涓棿欏剁偣銆備粠1鍒?鐨勬渶鐭礬寰勭粡榪噆 a y [ 1 ] [ 4 ] = 3銆傞噸澶嶄互涓婅繃紼嬶紝鏈鍚庡彲寰?鍒?鐨勬渶鐭礬寰勪負(fù)錛?錛?錛?錛?錛?銆?/p> <p>3.2.5 緗戠粶鐨勬棤浜ゅ弶瀛愰泦</p> <p>鍦?1 . 5 . 3鑺傜殑浜ゅ弶鍒嗗竷闂涓紝緇欏畾涓涓瘡杈瑰甫n 涓拡鑴氱殑甯冪嚎閫氶亾鍜屼竴涓帓鍒桟銆傞《閮ㄧ殑閽堣剼i 涓庡簳閮ㄧ殑閽堣剼Ci 鐩歌繛錛屽叾涓?鈮鈮錛屾暟瀵?i, Ci ) 縐頒負(fù)緗戠粍銆傛誨叡鏈塶 涓綉緇勯渶榪炴帴鎴栬繛閫氥傚亣璁炬湁涓や釜鎴栨洿澶氱殑甯冪嚎灞傦紝鍏朵腑鏈変竴涓負(fù)浼樺厛灞傦紝鍦ㄤ紭鍏堝眰涓彲浠ヤ嬌鐢ㄦ洿緇嗙殑榪炵嚎錛屽叾鐢?shù)闃讳篃鍙兘姣斿叾浠栧眰瑕仦畯寰楀銆傚竷綰挎椂搴斿敖鍙兘鍦ㄤ紭鍏堝眰涓竷璁炬洿澶氱殑緗戠粍銆傝屽墿涓嬬殑鍏朵粬緗戠粍灝嗗竷璁懼湪鍏朵粬灞傘傚綋涓斾粎褰撲袱涓綉緇勪箣闂翠笉浜ゅ弶鏃訛紝瀹冧滑鍙竷璁懼湪鍚屼竴灞傘傛垜浠殑浠誨姟鏄鎵句竴涓渶澶ф棤浜ゅ弶瀛愰泦錛圡aximum Noncrossing Su b s e t錛孧 N S )銆傚湪璇ラ泦涓紝浠繪剰涓や釜緗戠粍閮戒笉浜ゅ弶銆傚洜(i, Ci ) 瀹屽叏鐢眎 鍐沖畾錛屽洜姝ゅ彲鐢╥ 鏉ユ寚瀹?i, Ci )銆?/p> <p>渚?-18 鑰冨療鍥? 5 - 7錛堝搴斾簬鍥? 0 - 1 7錛夈? 1 , 8 )鍜? 2 , 7 )錛堜篃鍗?鍙風(fēng)綉緇勫拰2鍙風(fēng)綉緇勶級浜ゅ弶錛屽洜鑰屼笉鑳藉竷璁懼湪鍚屼竴灞備腑銆傝? 1 , 8 )錛?7,9) 鍜?9,10) 鏈氦鍙夛紝鍥犳鍙竷璁懼湪鍚屼竴灞傘備絾榪?涓綉緇勫茍涓嶈兘鏋勬垚涓涓狹 N S錛屽洜涓鴻繕鏈夋洿澶х殑涓嶄氦鍙夊瓙闆嗐傚浘1 0 - 1 7涓粰鍑虹殑渚嬪瓙涓紝闆嗗悎锝?( 4 , 2 ) ,( 5 , 5 ) , ( 7 , 9 ) , ( 9 , 1 0 )锝濇槸涓涓惈4涓綉緇勭殑M N S銆?/p> <p>璁綧 N S(i, j) 浠h〃涓涓狹 N S錛屽叾涓墍鏈夌殑(u, Cu ) 婊¤凍u鈮錛孋u鈮銆備護(hù)s i z e(i,j) 琛ㄧずM N S(i,j)鐨勫ぇ灝?鍗崇綉緇勭殑鏁扮洰)銆傛樉鐒禡 N S(n,n)鏄搴斾簬緇欏畾杈撳叆鐨凪 N S錛岃宻 i z e(n,n)鏄畠鐨勫ぇ灝忋?/p> <p>渚?-19 瀵逛簬鍥? 0 - 1 7涓殑渚嬪瓙錛孧 N S( 1 0 , 1 0 )鏄垜浠鎵劇殑鏈緇堢粨鏋溿傚渚? - 1 8涓墍鎸囧嚭鐨勶紝s i z e( 1 0 , 1 0 ) = 4錛屽洜涓? 1 , 8 )錛? 2 , 7 )錛? 7 , 9 )錛? 8 , 3 )錛? 9 , 1 0 )鍜? 1 0 , 6 )涓涔堥《閮ㄩ拡鑴氱紪鍙鋒瘮7澶э紝瑕佷箞搴曢儴閽堣剼緙栧彿姣?澶э紝鍥犳瀹冧滑閮戒笉灞炰簬M N S( 7 , 6 )銆傚洜姝ゅ彧闇鑰冨療鍓╀笅鐨?涓綉緇勬槸鍚﹀睘浜嶮 N S( 7 , 6 )錛屽鍥? 5 - 8鎵紺恒傚瓙闆嗭經(jīng)( 3 , 4 ) , ( 5 , 5 )锝濇槸澶у皬涓?鐨勬棤浜ゅ弶瀛愰泦銆傛病鏈夊ぇ灝忎負(fù)3鐨勬棤浜ゅ弶瀛愰泦錛屽洜姝 i z e( 7 , 6) = 2銆?/p> <p>褰搃= 1鏃訛紝( 1 ,C1) 鏄疢 N S( 1 ,j) 鐨勫敮涓鍊欓夈備粎褰搄鈮1 鏃訛紝榪欎釜緗戠粍鎵嶄細(xì)鏄疢 N S( 1 ,j) 鐨勪竴涓垚鍛? </p> <p>涓嬩竴姝ワ紝鑰冭檻i錛?鏃剁殑鎯呭喌銆傝嫢j錛淐i錛屽垯(i,Ci ) 涓嶅彲鑳芥槸M N S( i,j) 鐨勬垚鍛橈紝鎵鏈夊睘浜嶮 N S(i,j) 鐨?u, Cu ) 閮介渶婊¤凍u錛渋涓擟u錛渏錛屽洜姝わ細(xì)s i z e(i,j) =s i z e(i- 1 ,j), j<Ci 錛? 5 - 7錛?/p> <p>鑻鈮i錛屽垯(i,Ci ) 鍙兘鍦ㄤ篃鍙兘涓嶅湪M N S(i,j) 鍐呫傝嫢(i,Ci ) 鍦∕ N S(i,j) 鍐咃紝鍒欏湪M N S(i,j)涓笉浼?xì)鏈墭q欐牱鐨?u,Cu )錛歶錛渋涓擟u錛濩i錛屽洜涓鴻繖涓綉緇勫繀涓?i, Ci ) 鐩鎬氦銆傚洜姝 N S(i,j) 涓殑鍏朵粬鎵鏈夋垚鍛橀兘蹇呴』婊¤凍鏉′歡u錛渋涓擟u錛淐i銆傚湪M N S(i,j) 涓繖鏍風(fēng)殑緗戠粍鍏辨湁Mi- 1 , Ci- 1 涓傝嫢(i,Ci ) 涓嶅湪M N S(i,j)涓紝鍒橫 N S(i,j) 涓殑鎵鏈?u, Cu ) 蹇呴』婊¤凍u錛渋錛涘洜姝 i z e(i,j)=s i z e(i- 1 ,j)銆傝櫧鐒朵笉鑳界‘瀹?i, Ci )鏄惁鍦∕ N S(i,j) 涓紝浣嗘垜浠彲浠ユ牴鎹幏鍙栨洿澶 N S鐨勫師鍒欐潵浣滃嚭閫夋嫨銆傚洜姝わ細(xì)s i z e(i,j) = m a x {s i z e(i-1 ,j), s i z e(i- 1 ,Ci-1)+1}, j鈮i 錛? 5 - 8錛?/p> <p>铏界劧浠庯紙1 5 - 6錛夊紡鍒幫紙 1 5 - 8錛夊紡鍙敤閫掑綊娉曟眰瑙o紝浣嗕粠鍓嶉潰鐨勪緥瀛愬彲浠ョ湅鍑猴紝鍗充嬌閬垮厤浜嗛噸澶嶈綆楋紝鍔ㄦ佽鍒掗掑綊綆楁硶鐨勬晥鐜囦篃涓嶅楂橈紝鍥犳鍙冭檻榪唬鏂規(guī)硶銆傚湪榪唬榪囩▼涓厛鐢ㄥ紡錛? 5 - 6錛夎綆楀嚭s i ze ( 1 ,j)錛岀劧鍚庡啀鐢ㄥ紡錛? 5 - 7錛夊拰錛? 5 - 8錛夋寜i=2, 3, ., n 鐨勯『搴忚綆梥 i ze (i,j)錛屾渶鍚庡啀鐢═raceback 鏉ュ緱鍒癕 N S(n, n) 涓殑鎵鏈夌綉緇勩?/p> <p>渚?-20 鍥? 5 - 9緇欏嚭浜嗗浘1 5 - 7瀵瑰簲鐨剆 i z e(i,j) 鍊箋傚洜s i z e( 1 0 , 1 0) = 4錛屽彲鐭 N S鍚?涓綉緇勩備負(fù)姹傚緱榪?涓綉緇勶紝鍏堜粠s i ze ( 1 0 , 1 0 )鍏ユ墜銆傚彲鐢紙1 5 - 8錛夊紡綆楀嚭s i z e( 1 0 , 1 0 )銆傛牴鎹紡錛? 5 - 8錛夋椂鐨勪駭鐢熷師鍥犲彲鐭 i ze ( 1 0 , 1 0)=s i z e( 9 , 1 0 )錛屽洜姝ょ幇鍦ㄨ姹侻 NS ( 9 , 1 0 )銆傜敱浜嶮 NS ( 1 0 , 1 0 )鈮爏 i z e( 8 , 1 0 )錛屽洜姝 NS (9,10) 涓繀鍖呭惈9鍙風(fēng)綉緇勩侻 N S(9,10) 涓墿涓嬬殑緗戠粍緇勬垚M NS ( 8 , C9- 1)=M N S( 8 , 9 )銆傜敱M N S( 8 , 9 ) =M NS (7,9) 鐭ワ紝8鍙風(fēng)綉緇勫彲浠ヨ鎺掗櫎銆傛帴涓嬫潵瑕佹眰M N S( 7 , 9 )錛屽洜涓簊 i z e( 7 , 9 )鈮爏 i z e( 6 , 9 )錛屾墍浠 N S涓繀鍚?鍙風(fēng)綉緇勩侻 NS (7,9) 涓綑涓嬬殑緗戠粍緇勬垚M NS ( 6 , C7- 1 ) =M N S( 6 , 8 )銆傛牴鎹畇 i z e( 6 , 8 ) =s i z e( 5 , 8 )鍙帓闄?鍙風(fēng)綉緇勩傛寜鍚屾牱鐨勬柟娉曪紝 5鍙風(fēng)綉緇勶紝3鍙風(fēng)綉緇勫姞鍏 N S涓紝鑰?鍙風(fēng)綉緇勭瓑鍏朵粬緗戠粍琚帓闄ゃ傚洜姝ゅ洖婧繃紼嬫墍寰楀埌鐨勫ぇ灝忎負(fù)4鐨凪 N S涓簕 3 , 5 , 7 , 9 }銆?/p> <p>娉ㄦ剰鍒板湪鍥炴函榪囩▼涓湭鐢ㄥ埌s i z e( 1 0 ,j) (j鈮? 0 )錛屽洜姝や笉蹇呰綆楄繖浜涘箋?/p> <p>紼嬪簭1 5 - 11緇欏嚭浜嗚綆梥 i z e ( i , j ) 鐨勮凱浠d唬鐮佸拰杈撳嚭M N S鐨勪唬鐮併傚嚱鏁癕 N S鐢ㄦ潵璁$畻s i ze (i,j) 鐨勫鹼紝璁$畻緇撴灉鐢ㄤ竴涓簩緇存暟緇凪 N鏉ュ瓨鍌ㄣ俿ize[i][j] 琛ㄧずs i z e(i,j)錛屽叾涓璱=j= n 鎴?鈮錛渘錛?鈮鈮錛岃綆楄繃紼嬬殑鏃墮棿澶嶆潅鎬т負(fù)(n2 )銆傚嚱鏁癟raceback 鍦∟ et錛? : m - 1錛戒腑杈撳嚭鎵寰楀埌鐨凪 N S錛屽叾鏃墮棿澶嶆潅鎬т負(fù)(n)銆傚洜姝ゆ眰瑙 M S闂鐨勫姩鎬佽鍒掔畻娉曠殑鎬葷殑鏃墮棿澶嶆潅鎬?/p> <p>涓?n2 )銆?/p> <p>紼嬪簭1 5 - 11 瀵繪壘鏈澶ф棤浜ゅ弶瀛愰泦</p> <p>void MNS(int C[], int n, int **size)</p> <p>{ / /瀵逛簬鎵鏈夌殑i 鍜宩錛岃綆梥 i z e [ i ] [ j ]</p> <p>/ /鍒濆鍖杝 i z e [ 1 ] [ * ]</p> <p>for (int j = 0; j < C[1]; j++)</p> <p>size[1][j] = 0;</p> <p>for (j = C[1]; j <= n; j++)</p> <p>size[1][j] = 1;</p> <p>// 璁$畻size[i][*], 1 < i < n</p> <p>for (int i = 2; i < n; i++) {</p> <p>for (int j = 0; j < C[i]; j++)</p> <p>size[i][j] = size[i-1][j];</p> <p>for (j = C[i]; j <= n; j++)</p> <p>size[i][j] = max(size[i-1][j], size[i-1][C[i]-1]+1);</p> <p>}</p> <p>size[n][n] = max(size[n-1][n], size[n-1][C[n]-1]+1);</p> <p>}</p> <p>void Traceback(int C[], int **size, int n, int Net[], int& m)</p> <p>{// 鍦∟ e t [ 0 : m - 1 ]涓繑鍥濵 M S</p> <p>int j = n; // 鎵鍏佽鐨勫簳閮ㄦ渶澶ч拡鑴氱紪鍙?/p> <p>m = 0; // 緗戠粍鐨勬父鏍?/p> <p>for (int i = n; i > 1; i--)</p> <p>// i 鍙穘 e t鍦∕ N S涓?</p> <p>if (size[i][j] != size[i-1][j]){// 鍦∕ N S涓?/p> <p>Net[m++] = i;</p> <p>j = C[i] - 1;}</p> <p>// 1鍙風(fēng)綉緇勫湪M N S涓?</p> <p>if (j >= C[1])</p> <p>Net[m++] = 1; // 鍦∕ N S涓?/p> <p>}</p> <p>3.2.6 鍏冧歡鎶樺彔</p> <p>鍦ㄨ璁$數(shù)璺殑榪囩▼涓紝宸ョ▼甯堜滑浼?xì)閲囧彇澶毧U嶄笉鍚岀殑璁捐椋庢牸銆傚叾涓殑涓ょ涓轟綅錛嶇墖璁捐錛坆it-slice design錛夊拰鏍囧噯鍗曞厓璁捐錛坰tandard-cell design錛夈傚湪鍓嶄竴縐嶆柟娉曚腑錛岀數(shù)璺鍏堣璁捐涓轟竴涓厓浠舵爤錛堝鍥?5-10a 鎵紺猴級銆傛瘡涓厓浠禖i 瀹戒負(fù)wi 錛岄珮涓篽i 錛岃屽厓浠跺搴︾敤鐗囨暟鏉ヨ〃紺恒傚浘15-10a 緇欏嚭浜嗕竴涓洓鐗囩殑璁捐銆傜嚎璺槸鎸夌墖鏉ヨ繛鎺ュ悇鍏冧歡鐨勶紝鍗寵繛綰垮彲鑳借繛鎺ュ厓浠禖i 鐨勭j鐗囧埌鍏冧歡Ci+1 鐨勭j 鐗囥傚鏋滄煇浜涘厓浠剁殑瀹藉害涓嶈凍j 鐗囷紝鍒欒繖浜涘厓浠朵箣闂翠笉瀛樺湪鐗噅 鐨勮繛綰褲傚綋鍥? 5 -10a 鐨勪綅錛嶇墖璁捐浣滀負(fù)鏌愪竴澶х郴緇熺殑涓閮ㄥ垎鏃訛紝鍒欏湪V L SI ( Very Large Scale Integrated) 鑺墖涓婁負(fù)瀹冨垎閰嶄竴瀹氭暟閲忕殑絀洪棿鍗曞厓銆傚垎閰嶆槸鎸夌┖闂村搴︽垨楂樺害鐨勯檺鍒舵潵瀹屾垚鐨勩傜幇鍦ㄧ殑闂渚挎槸濡備綍灝嗗厓浠舵爤鎶樺彔鍒板垎閰嶇┖闂翠腑鍘伙紝浠ヤ究灝介噺鍑忓皬鏈彈闄愬埗鐨勫昂搴︼紙濡傦紝鑻ラ珮搴﹂檺鍒朵負(fù)H鏃訛紝蹇呴』鎶樺彔鏍堜互灝介噺鍑忓皬瀹藉害W錛夈傜敱浜庡叾浠栧昂搴︿笉鍙橈紝鍥犳緙╁皬涓涓昂搴︼紙濡俉錛夌瓑浠蜂簬緙╁皬闈㈢Н銆傚彲鐢ㄦ姌綰挎柟寮忔潵鎶樺彔鍏冧歡鏍堬紝鍦ㄦ瘡涓鎶樺彔鐐癸紝鍏冧歡鏃嬭漿1 8 0擄銆傚湪鍥?5-10b 鐨勪緥瀛愪腑錛屼竴涓? 2鍏冧歡鐨勬爤鎶樺彔鎴愬洓涓瀭鐩存爤錛屾姌鍙犵偣涓篊6 , C9 鍜孋1 0銆傛姌鍙犳爤鐨勫搴︽槸瀹藉害鏈澶х殑鍏冧歡鎵闇鐨勭墖鏁般傚湪鍥?5-10b 涓紝鏍堝鍚勪負(fù)4錛?錛?鍜?銆傛姌鍙犳爤鐨勯珮搴︾瓑浜庡悇鏍堟墍鏈夊厓浠墮珮搴︿箣鍜岀殑鏈澶у箋傚湪鍥?5-10b 涓爤1鐨勫厓浠墮珮搴︿箣鍜屾渶澶э紝璇ユ爤鐨勯珮搴﹀喅瀹氫簡鍖呭洿鎵鏈夋爤鐨勭煩褰㈤珮搴︺?/p> <p>瀹為檯涓婏紝鍦ㄥ厓浠舵姌鍙犻棶棰樹腑錛岃繕闇鑰冭檻榪炴帴涓や釜鏍堢殑綰胯礬鎵闇鐨勯檮鍔犵┖闂淬傚錛屽湪鍥? 5 -10b 涓瑿5 鍜孋6 闂寸殑綰胯礬鍥燙6 涓烘姌鍙犵偣鑰屽集鏇層傝繖浜涚嚎璺姹傚湪C5 鍜孋6 涔嬩笅鐣欐湁鍨傜洿絀洪棿錛屼互渚胯兘浠庢爤1榪炲埌鏍?銆備護(hù)ri 涓篊i 鏄姌鍙犵偣鏃舵墍闇鐨勯珮搴︺傛爤1鎵闇鐨勯珮搴︿負(fù)5 ?i =1hi +r6錛屾爤2鎵闇楂樺害涓? ?i=6hi +r6+r9銆?/p> <p>鍦ㄦ爣鍑嗗崟鍏冭璁′腑錛岀數(shù)璺鍏堣璁捐鎴愪負(fù)鍏鋒湁鐩稿悓楂樺害鐨勭鍚堢嚎鎬ч『搴忕殑鍏冧歡鎺掑垪銆傚亣璁炬綰挎ч『搴忎腑鐨勫厓浠朵負(fù)C1錛?錛孋n錛屼笅涓姝ュ厓浠惰鎶樺彔鎴愬鍥? 5 - 11鎵紺虹殑鐩稿悓瀹藉害鐨勮銆傚湪姝ゅ浘涓紝 1 2涓爣鍑嗗崟鍏冩姌鍙犳垚鍥涗釜絳夊琛屻傛姌鍙犵偣鏄疌4錛孋6 鍜孋11銆傚湪鐩擱偦鏍囧噯鍗曞厓琛屼箣闂達(dá)紝浣跨敤甯冪嚎閫氶亾鏉ヨ繛鎺ヤ笉鍚岀殑琛屻傛姌鍙犵偣鍐沖畾浜嗘墍闇甯冪嚎閫氶亾鐨勯珮搴︺傝li 琛ㄧず褰揅i 涓烘姌鍙犵偣鏃舵墍闇鐨勯氶亾楂樺害銆傚湪鍥? 5 - 11鐨勪緥瀛愪腑錛屽竷綰塊氶亾1鐨勯珮搴︿負(fù)l4錛岄氶亾2鐨勯珮搴︿負(fù)l6錛岄氶亾3鐨勯珮搴︿負(fù)l11銆備綅錛嶇墖鏍堟姌鍙犲拰鏍囧噯鍗曞厓鎶樺彔閮戒細(xì)寮曞嚭涓緋誨垪鐨勯棶棰橈紝榪欎簺闂鍙敤鍔ㄦ佽鍒掓柟娉曟潵瑙e喅銆?/p> <p>1. 絳夊浣嶏紞鐗囧厓浠舵姌鍙?/p> <p>瀹氫箟r1 = rn+1 =0銆傜敱鍏冧歡Ci 鑷矯j 鏋勬垚鐨勬爤鐨勯珮搴﹁姹備負(fù)j ?k= ilk+ ri+ rj + 1銆傝涓涓綅錛嶇墖璁捐涓墍鏈夊厓浠舵湁鐩稿悓瀹藉害W銆傞鍏堣冨療鍦ㄦ姌鍙犵煩褰㈢殑楂樺害H緇欏畾鐨勬儏鍐典笅錛屽浣曠緝?yōu)畯鍏跺搴︺傝W(wǎng)i</p> <p>涓哄皢鍏冧歡Ci 鍒癈n 鎶樺彔鍒伴珮涓篐鐨勭煩褰㈡椂鐨勬渶灝忓搴︺傝嫢鎶樺彔涓嶈兘瀹炵幇錛堝褰搑i +hi錛濰鏃訛級錛屽彇Wi =鈭炪傛敞鎰忓埌W1 鍙兘鏄墍鏈塶 涓厓浠剁殑鏈浣蟲姌鍙犲搴︺?/p> <p>褰撴姌鍙燙i 鍒癈n 鏃訛紝闇瑕佺‘瀹氭姌鍙犵偣銆傜幇鍋囧畾鎶樺彔鐐規(guī)槸鎸夋爤宸﹀埌鏍堝彸鐨勯『搴忔潵鍙栧畾鐨勩傝嫢絎竴鐐瑰畾涓篊k+ 1錛屽垯C(jī)i 鍒癈k 鍦ㄧ涓涓爤涓備負(fù)浜嗗緱鍒版渶灝忓搴︼紝浠嶤k+1 鍒癈n 鐨勬姌鍙犲繀欏葷敤鏈浼樺寲鏂規(guī)硶錛屽洜姝ゅ張灝嗙敤鍒版渶浼樺師鐞嗭紝鍙敤鍔ㄦ佽鍒掓柟娉曟潵瑙e喅姝ら棶棰樸傚綋絎竴涓姌鍙犵偣k+ 1宸茬煡鏃訛紝鍙緱鍒頒互涓嬪叕寮忥細(xì)</p> <p>Wi =w+ Wk + 1 錛? 5 - 9錛?/p> <p>鐢變簬涓嶇煡閬撶涓涓姌鍙犵偣錛屽洜姝ら渶瑕佸皾璇曟墍鏈夊彲琛岀殑鎶樺彔鐐癸紝騫墮夋嫨婊¤凍錛?1 5 - 9錛夊紡鐨勬姌鍙犵偣銆備護(hù)h s u m(i,k)=k ?j = ihj銆傚洜k+ 1鏄竴涓彲琛岀殑鎶樺彔鐐癸紝鍥犳h s u m(i, k) +ri +rk+1 涓瀹氫笉浼?xì)瓒厴q嘓銆?/p> <p>鏍規(guī)嵁涓婅堪鍒嗘瀽錛屽彲寰楀埌浠ヤ笅鍔ㄦ佽鍒掗掑綊寮忥細(xì)</p> <p>榪欓噷W(xué)n+1 =0錛屼笖鍦ㄦ棤鏈浼樻姌鍙犵偣k+ 1鏃禬i 涓衡垶銆傚埄鐢ㄩ掑綊寮忥紙1 5 - 1 0錛夛紝鍙氳繃閫掑綊璁$畻Wn , Wn- 1., W2 , W1 鏉ヨ綆梂i銆俉i 鐨勮綆楅渶瑕佽嚦澶氭鏌-i+ 1涓猈k+ 1錛岃楁椂涓篛 (n-k)銆傚洜姝よ綆楁墍鏈塛i 鐨勬椂闂翠負(fù)O (n2 )銆傞氳繃淇濈暀寮忥紙1 5 - 1 0錛夋瘡嬈℃墍寰楃殑k 鍊鹼紝鍙洖婧湴璁$畻鍑哄悇涓渶浼樼殑鎶樺彔鐐癸紝鍏舵椂闂磋楄垂涓篛 (n)銆?/p> <p>鐜板湪鏉ヨ冨療鍙﹀涓涓湁鍏崇瓑瀹藉厓浠剁殑鎶樺彔闂錛氭姌鍙犲悗鐭╁艦鐨勫搴宸茬煡錛岄渶瑕佸敖閲忓噺灝忓叾楂樺害銆傚洜姣忎釜鎶樺彔鐭╁艦瀹戒負(fù)w錛屽洜姝ゆ姌鍙犲悗鏍堢殑鏈澶ф暟閲忎負(fù)s=W / w銆備護(hù)Hi, j 涓篊i , ., Cn 鎶樺彔鎴愪竴瀹藉害涓簀w 鐨勭煩褰㈠悗鐨勬渶灝忛珮搴︼紝 H1, s 鍒欐槸鎵鏈夊厓浠舵姌鍙犲悗鐨勬渶灝忛珮搴︺傚綋j= 1鏃訛紝涓嶅厑璁鎬換浣曟姌鍙狅紝鍥犳錛欻i,1 =h s u m(i,n) +ri , 1鈮鈮</p> <p>鍙﹀錛屽綋i=n 鏃訛紝浠呮湁涓涓厓浠訛紝涔熶笉鍙兘鎶樺彔錛屽洜姝わ細(xì)Hn ,j=hn+rn , 1鈮鈮</p> <p>鍦ㄥ叾浠栨儏鍐典笅錛岄兘鍙互榪涜鍏冧歡鎶樺彔銆傚鏋滅涓涓姌鍙犵偣涓簁+ 1錛屽垯絎竴涓爤鐨勯珮搴︿負(fù)</p> <p>h s u m(i,k) +ri +rk+ 1銆傚叾浠栧厓浠跺繀欏諱互鑷沖(j- 1 ) *w 鐨勫搴︽姌鍙犮備負(fù)淇濊瘉璇ユ姌鍙犵殑鏈浼樻э紝鍏朵粬鍏冧歡涔熼渶浠ユ渶灝忛珮搴﹁繘琛屾姌鍙?</p> <p>鍥犱負(fù)絎竴涓姌鍙犵偣鏈煡錛屽洜姝ゅ繀欏誨皾璇曟墍鏈夊彲鑳界殑鎶樺彔鐐癸紝鐒跺悗浠庝腑鎵懼嚭涓涓嬌寮忥紙1 5 - 11錛夌殑鍙充晶鍙栨渶灝忓肩殑鐐癸紝璇ョ偣鎴愪負(fù)絎竴涓姌鍙犵偣銆?/p> <p>鍙敤榪唬娉曟潵姹傝ВHi, j ( 1鈮鈮, 1鈮鈮)錛屾眰瑙g殑欏哄簭涓猴細(xì)鍏堣綆梛=2 鏃剁殑H i, j錛屽啀綆梛= 3錛?錛屼互姝ょ被鎺ㄣ傚搴旀瘡涓猨 鐨凥i, j 鐨勮綆楁椂闂翠負(fù)O (n2 )錛屾墍浠ヨ綆楁墍鏈塇 i, j 鐨勬椂闂翠負(fù)O(s n2 )銆傞氳繃淇濆瓨鐢憋紙 1 5 - 1 2錛夊紡璁$畻鍑虹殑姣忎釜k 鍊鹼紝鍙互閲囩敤澶嶆潅鎬т負(fù)O (n) 鐨勫洖婧繃紼嬫潵紜畾鍚勪釜鏈浼樼殑鎶樺彔鐐廣?/p> <p>2. 鍙樺浣嶏紞鐗囧厓浠剁殑鎶樺彔</p> <p>棣栧厛鑰冨療鎶樺彔鐭╁艦鐨勯珮搴宸插畾錛屾姹傛渶灝忕殑鎶樺彔瀹藉害鐨勬儏鍐點(diǎn)備護(hù)Wi 濡傚紡錛? 5 - 1 0錛夋墍紺猴紝鎸夌収涓庯紙1 5 - 1 0錛夊紡鐩稿悓鐨勬帹瀵艱繃紼嬶紝鍙緱錛?/p> <p>Wi = m i n {w m i n(i, k) +Wk+1 | h s u m(i,k)+ ri +rk+ 1鈮, i鈮鈮} 錛? 5 - 1 3錛?/p> <p>鍏朵腑Wn+1=0涓攚 m i n(i,k)= m ini鈮鈮{wj }銆傚彲鐢ㄤ笌錛? 5 - 1 0錛夊紡涓鏍風(fēng)殑鏂規(guī)硶姹傝В錛? 5 - 1 3錛夊紡錛屾墍闇鏃墮棿涓篛(n2 )銆?/p> <p>褰撴姌鍙犲搴緇欏畾鏃訛紝鏈灝忛珮搴︽姌鍙犲彲鐢ㄦ姌鍗婃悳绱㈡柟娉曞瓚呰繃O(n2 )涓彲鑳藉艱繘琛屾悳绱㈡潵瀹炵幇錛屽彲鑳界殑楂樺害鍊間負(fù)h(i,j)+ri +rj + 1銆傚湪媯嫻嬫瘡涓珮搴︽椂錛屼篃鍙敤錛?1 5 - 1 3錛夊紡鏉ョ‘瀹氳鎶樺彔鐨勫搴︽槸鍚﹀皬浜庣瓑浜嶹銆傝繖縐嶆儏鍐典笅鎬葷殑鏃墮棿娑堣椾負(fù)O (n2 l o gn)銆?/p> <p>3. 鏍囧噯鍗曞厓鎶樺彔</p> <p>鐢╳i 瀹氫箟鍗曞厓Ci 鐨勫搴︺傛瘡涓崟鍏冪殑楂樺害涓篽銆傚綋鏍囧噯鍗曞厓琛岀殑瀹藉害W 鍥哄畾涓嶅彉鏃訛紝閫氳繃鍑忓皯鎶樺彔楂樺害錛屽彲浠ョ浉搴斿湴鍑忓皯鎶樺彔闈㈢Н銆傝冨療Ci 鍒癈n 鐨勬渶灝忛珮搴︽姌鍙犮傝絎竴涓姌鍙犵偣鏄疌s+ 1銆備粠鍏冧歡Cs+1 鍒癈n 鐨勬姌鍙犲繀欏諱嬌鐢ㄦ渶灝忛珮搴︼紝鍚﹀垯錛屽彲浣跨敤鏇村皬鐨勯珮搴︽潵鎶樺彔Cs+1 鍒癈n錛屼粠鑰屽緱鍒版洿灝忕殑鎶樺彔楂樺害銆傛墍浠ヨ繖閲屼粛鍙嬌鐢ㄦ渶浼樺師鐞嗗拰鍔ㄦ佽鍒掓柟娉曘?/p> <p>浠i , s 涓篊i 鍒癈n 鎶樺彔鎴愬涓篧鐨勭煩褰㈡椂鐨勬渶灝忛珮搴︼紝鍏朵腑絎竴涓姌鍙犵偣涓篊s+ 1銆備護(hù)w s u m(i, s)=s ?j = iwj銆傚彲鍋囧畾娌℃湁瀹藉害瓚呰繃W鐨勫厓浠訛紝鍚﹀垯涓嶅彲鑳借繘琛屾姌鍙犮傚浜嶩n,n 鍥犱負(fù)鍙湁涓涓厓浠訛紝涓嶅瓨鍦ㄨ繛綰塊棶棰橈紝鍥犳Hn, n =h銆傚浜嶩 i, s錛?鈮錛渟鈮錛夋敞鎰忓埌濡傛灉w s u m(i, s )錛濿錛屼笉鍙兘瀹炵幇鎶樺彔銆傝嫢w s u m(i,s)鈮錛屽厓浠禖i 鍜孋 j + 1 鍦ㄧ浉鍚岀殑鏍囧噯鍗曞厓琛屼腑錛岃琛屼笅鏂瑰竷綰塊氶亾鐨勯珮搴︿負(fù)ls+ 1錛堝畾涔塴n+1 = 0錛夈傚洜鑰岋細(xì)Hi, s = Hi+1, k 錛? 5 - 1 4錛?/p> <p>褰搃=s錛渘 鏃訛紝絎竴涓爣鍑嗗崟鍏冭鍙寘鍚獵i 銆傝琛岀殑楂樺害涓篽 涓旇琛屼笅鏂瑰竷綰塊氶亾鐨勯珮搴︿負(fù)li+ 1銆傚洜Ci+ 1 鍒癈n 鍗曞厓鐨勬姌鍙犳槸鏈浼樼殑.</p> <p>涓轟簡瀵繪壘鏈灝忛珮搴︽姌鍙狅紝棣栧厛浣跨敤寮忥紙 1 5 - 1 4錛夊拰錛? 5 - 1 5錛夋潵紜畾Hi, s 錛?鈮鈮鈮錛夈傛渶灝忛珮搴︽姌鍙犵殑楂樺害涓簃 in锝?jīng)H1 , s锝濄傚彲浠ヤ嬌鐢ㄥ洖婧繃紼嬫潵紜畾鏈灝忛珮搴︽姌鍙犱腑鐨勬姌鍙犵偣銆?/p> <img src ="http://www.tkk7.com/renyangok/aggbug/100957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-02-27 17:10 <a href="http://www.tkk7.com/renyangok/archive/2007/02/27/100957.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浜屽弶鏍?/title><link>http://www.tkk7.com/renyangok/archive/2007/02/27/100901.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Tue, 27 Feb 2007 03:41:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2007/02/27/100901.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/100901.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2007/02/27/100901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/100901.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/100901.html</trackback:ping><description><![CDATA[ <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">寤虹珛浜屽弶鏍?wèi)迤堝厛鏍归亶鍘嗙殑浠g?/span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_44_936_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_936_Open_Text.style.display='none'; Codehighlighter1_44_936_Closed_Image.style.display='inline'; Codehighlighter1_44_936_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_44_936_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_936_Closed_Text.style.display='none'; Codehighlighter1_44_936_Open_Image.style.display='inline'; Codehighlighter1_44_936_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽BinaryTreeTest聽</span> <span id="Codehighlighter1_44_936_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_44_936_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_86_615_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_615_Open_Text.style.display='none'; Codehighlighter1_86_615_Closed_Image.style.display='inline'; Codehighlighter1_86_615_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_86_615_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_86_615_Closed_Text.style.display='none'; Codehighlighter1_86_615_Open_Image.style.display='inline'; Codehighlighter1_86_615_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽main(String聽args[])聽</span> <span id="Codehighlighter1_86_615_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_86_615_Open_Text"> <span style="COLOR: #000000">{</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">涓繪柟娉?/span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽BinaryTreeTest聽b聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽BinaryTreeTest();<br /><img id="Codehighlighter1_151_192_Open_Image" onclick="this.style.display='none'; Codehighlighter1_151_192_Open_Text.style.display='none'; Codehighlighter1_151_192_Closed_Image.style.display='inline'; Codehighlighter1_151_192_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_151_192_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_151_192_Closed_Text.style.display='none'; Codehighlighter1_151_192_Open_Image.style.display='inline'; Codehighlighter1_151_192_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽data[]聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_151_192_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_151_192_Open_Text"> <span style="COLOR: #000000">{聽</span> <span style="COLOR: #000000">12</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">11</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">34</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">45</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">67</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">89</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">56</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">43</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">22</span> <span style="COLOR: #000000">,聽</span> <span style="COLOR: #000000">98</span> <span style="COLOR: #000000">聽}</span> </span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽BinaryTree聽root聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽BinaryTree(data[</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">]);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽System.out.print(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">浜屽弶鏍?wèi)鐨勪腑鐨勬暟鎹Q氥銆</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">寤虹珛浜屽弶鏍?/span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_324_403_Open_Image" onclick="this.style.display='none'; Codehighlighter1_324_403_Open_Text.style.display='none'; Codehighlighter1_324_403_Closed_Image.style.display='inline'; Codehighlighter1_324_403_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_324_403_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_324_403_Closed_Text.style.display='none'; Codehighlighter1_324_403_Open_Image.style.display='inline'; Codehighlighter1_324_403_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">聽(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽i聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">;聽i聽</span> <span style="COLOR: #000000"><</span> <span style="COLOR: #000000">聽data.length;聽i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)聽</span> <span id="Codehighlighter1_324_403_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_324_403_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽root.insertTree(root,聽data[i]);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽System.out.print(data[i聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">]聽</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">;</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽System.out.println(data[data.length聽</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">]);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽key聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽Integer.parseInt(args[</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">]);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_522_563_Open_Image" onclick="this.style.display='none'; Codehighlighter1_522_563_Open_Text.style.display='none'; Codehighlighter1_522_563_Closed_Image.style.display='inline'; Codehighlighter1_522_563_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_522_563_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_522_563_Closed_Text.style.display='none'; Codehighlighter1_522_563_Open_Image.style.display='inline'; Codehighlighter1_522_563_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(b.searchkey(root,聽key))聽</span> <span id="Codehighlighter1_522_563_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_522_563_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽System.out.println(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">鎵懼埌浜?</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">聽key);<br /><img id="Codehighlighter1_570_612_Open_Image" onclick="this.style.display='none'; Codehighlighter1_570_612_Open_Text.style.display='none'; Codehighlighter1_570_612_Closed_Image.style.display='inline'; Codehighlighter1_570_612_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_570_612_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_570_612_Closed_Text.style.display='none'; Codehighlighter1_570_612_Open_Image.style.display='inline'; Codehighlighter1_570_612_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_570_612_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_570_612_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽System.out.println(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">娌℃湁鎵懼埌錛?/span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">聽key);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img id="Codehighlighter1_670_934_Open_Image" onclick="this.style.display='none'; Codehighlighter1_670_934_Open_Text.style.display='none'; Codehighlighter1_670_934_Closed_Image.style.display='inline'; Codehighlighter1_670_934_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_670_934_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_670_934_Closed_Text.style.display='none'; Codehighlighter1_670_934_Open_Image.style.display='inline'; Codehighlighter1_670_934_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">boolean</span> <span style="COLOR: #000000">聽searchkey(BinaryTree聽root,聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽key)聽</span> <span id="Codehighlighter1_670_934_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_670_934_Open_Text"> <span style="COLOR: #000000">{</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">鏌ヨ</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽</span> <span style="COLOR: #0000ff">boolean</span> <span style="COLOR: #000000">聽bl聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">false</span> <span style="COLOR: #000000">;<br /><img id="Codehighlighter1_718_751_Open_Image" onclick="this.style.display='none'; Codehighlighter1_718_751_Open_Text.style.display='none'; Codehighlighter1_718_751_Closed_Image.style.display='inline'; Codehighlighter1_718_751_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_718_751_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_718_751_Closed_Text.style.display='none'; Codehighlighter1_718_751_Open_Image.style.display='inline'; Codehighlighter1_718_751_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(root聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">)聽</span> <span id="Codehighlighter1_718_751_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_718_751_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽bl聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">false</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽bl;<br /><img id="Codehighlighter1_780_812_Open_Image" onclick="this.style.display='none'; Codehighlighter1_780_812_Open_Text.style.display='none'; Codehighlighter1_780_812_Closed_Image.style.display='inline'; Codehighlighter1_780_812_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_780_812_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_780_812_Closed_Text.style.display='none'; Codehighlighter1_780_812_Open_Image.style.display='inline'; Codehighlighter1_780_812_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(root.data聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽key)聽</span> <span id="Codehighlighter1_780_812_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_780_812_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽bl聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">true</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽bl;<br /><img id="Codehighlighter1_841_889_Open_Image" onclick="this.style.display='none'; Codehighlighter1_841_889_Open_Text.style.display='none'; Codehighlighter1_841_889_Closed_Image.style.display='inline'; Codehighlighter1_841_889_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_841_889_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_841_889_Closed_Text.style.display='none'; Codehighlighter1_841_889_Open_Image.style.display='inline'; Codehighlighter1_841_889_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(key聽</span> <span style="COLOR: #000000">>=</span> <span style="COLOR: #000000">聽root.data)聽</span> <span id="Codehighlighter1_841_889_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_841_889_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽searchkey(root.rightpoiter,聽key);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽searchkey(root.leftpoiter,聽key);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img id="Codehighlighter1_956_1493_Open_Image" onclick="this.style.display='none'; Codehighlighter1_956_1493_Open_Text.style.display='none'; Codehighlighter1_956_1493_Closed_Image.style.display='inline'; Codehighlighter1_956_1493_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_956_1493_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_956_1493_Closed_Text.style.display='none'; Codehighlighter1_956_1493_Open_Image.style.display='inline'; Codehighlighter1_956_1493_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">聽BinaryTree聽</span> <span id="Codehighlighter1_956_1493_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_956_1493_Open_Text"> <span style="COLOR: #000000">{</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">浜屽弶鏍?wèi)绫?/span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽data;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽BinaryTree聽leftpoiter;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽BinaryTree聽rightpoiter;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_1049_1115_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1049_1115_Open_Text.style.display='none'; Codehighlighter1_1049_1115_Closed_Image.style.display='inline'; Codehighlighter1_1049_1115_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1049_1115_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1049_1115_Closed_Text.style.display='none'; Codehighlighter1_1049_1115_Open_Image.style.display='inline'; Codehighlighter1_1049_1115_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽BinaryTree(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽data)聽</span> <span id="Codehighlighter1_1049_1115_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1049_1115_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.data聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽data;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽leftpoiter聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽rightpoiter聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">;<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img id="Codehighlighter1_1169_1491_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1169_1491_Open_Text.style.display='none'; Codehighlighter1_1169_1491_Closed_Image.style.display='inline'; Codehighlighter1_1169_1491_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_1169_1491_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1169_1491_Closed_Text.style.display='none'; Codehighlighter1_1169_1491_Open_Image.style.display='inline'; Codehighlighter1_1169_1491_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">聽insertTree(BinaryTree聽root,聽</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">聽data)聽</span> <span id="Codehighlighter1_1169_1491_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1169_1491_Open_Text"> <span style="COLOR: #000000">{</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">鎻掑叆鑺傜偣</span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_1202_1343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1202_1343_Open_Text.style.display='none'; Codehighlighter1_1202_1343_Closed_Image.style.display='inline'; Codehighlighter1_1202_1343_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_1202_1343_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1202_1343_Closed_Text.style.display='none'; Codehighlighter1_1202_1343_Open_Image.style.display='inline'; Codehighlighter1_1202_1343_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(data聽</span> <span style="COLOR: #000000">>=</span> <span style="COLOR: #000000">聽root.data)聽</span> <span id="Codehighlighter1_1202_1343_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1202_1343_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_1237_1287_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1237_1287_Open_Text.style.display='none'; Codehighlighter1_1237_1287_Closed_Image.style.display='inline'; Codehighlighter1_1237_1287_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1237_1287_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1237_1287_Closed_Text.style.display='none'; Codehighlighter1_1237_1287_Open_Image.style.display='inline'; Codehighlighter1_1237_1287_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(root.rightpoiter聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">)聽</span> <span id="Codehighlighter1_1237_1287_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1237_1287_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽root.rightpoiter聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽BinaryTree(data);<br /><img id="Codehighlighter1_1294_1339_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1294_1339_Open_Text.style.display='none'; Codehighlighter1_1294_1339_Closed_Image.style.display='inline'; Codehighlighter1_1294_1339_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1294_1339_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1294_1339_Closed_Text.style.display='none'; Codehighlighter1_1294_1339_Open_Image.style.display='inline'; Codehighlighter1_1294_1339_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_1294_1339_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1294_1339_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽insertTree(root.rightpoiter,聽data);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img id="Codehighlighter1_1350_1488_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1350_1488_Open_Text.style.display='none'; Codehighlighter1_1350_1488_Closed_Image.style.display='inline'; Codehighlighter1_1350_1488_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_1350_1488_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1350_1488_Closed_Text.style.display='none'; Codehighlighter1_1350_1488_Open_Image.style.display='inline'; Codehighlighter1_1350_1488_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_1350_1488_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1350_1488_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_1384_1433_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1384_1433_Open_Text.style.display='none'; Codehighlighter1_1384_1433_Closed_Image.style.display='inline'; Codehighlighter1_1384_1433_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1384_1433_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1384_1433_Closed_Text.style.display='none'; Codehighlighter1_1384_1433_Open_Image.style.display='inline'; Codehighlighter1_1384_1433_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(root.leftpoiter聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">)聽</span> <span id="Codehighlighter1_1384_1433_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1384_1433_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽root.leftpoiter聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">聽BinaryTree(data);<br /><img id="Codehighlighter1_1440_1484_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1440_1484_Open_Text.style.display='none'; Codehighlighter1_1440_1484_Closed_Image.style.display='inline'; Codehighlighter1_1440_1484_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1440_1484_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1440_1484_Closed_Text.style.display='none'; Codehighlighter1_1440_1484_Open_Image.style.display='inline'; Codehighlighter1_1440_1484_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_1440_1484_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_1440_1484_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽insertTree(root.leftpoiter,聽data);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽end</span> </div> <p>璁茶В錛氫竴涓鎵懼叧閿瓧錛嶏紞searchkey <br />鍙︿竴涓槸鎻掑叆涓涓粨鐐癸細(xì)insertTree <br />鍙﹀榪欐槸涓涓畬鍏ㄧ殑鍏堝簭閬嶅巻浜屽弶鏍?wèi)鐨勮娉曘傚厛鏍圭粨鐐癸紝鍐嶅乏緇撶偣錛屽鏃犲啀鍙崇粨鐐癸紝濡備簺鍔犲綊鑷蟲悳绱㈠畬姣曘偮犅?/p> <img src ="http://www.tkk7.com/renyangok/aggbug/100901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2007-02-27 11:41 <a href="http://www.tkk7.com/renyangok/archive/2007/02/27/100901.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍姹傜礌鏁?/title><link>http://www.tkk7.com/renyangok/archive/2006/11/20/82278.html</link><dc:creator>淇濆皵浠?/dc:creator><author>淇濆皵浠?/author><pubDate>Mon, 20 Nov 2006 07:28:00 GMT</pubDate><guid>http://www.tkk7.com/renyangok/archive/2006/11/20/82278.html</guid><wfw:comment>http://www.tkk7.com/renyangok/comments/82278.html</wfw:comment><comments>http://www.tkk7.com/renyangok/archive/2006/11/20/82278.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/renyangok/comments/commentRss/82278.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/renyangok/services/trackbacks/82278.html</trackback:ping><description><![CDATA[<p>1銆傝嚜鐒舵暟鏄?錛?錛?……<br /> 2銆傜礌鏁版槸2錛?錛?……錛堜笉鍖呮嫭1鐨勫彧鑳借儗1鍜屽畠鏈韓鏁撮櫎鐨勮嚜鐒舵暟錛?br /> <br /> import java.util.Scanner;<br /> <br /> public class Prime {</p> <p>    //鏈鍩烘湰鐨勫仛娉?br /> </p> <p>    private int prime1(int num) {<br />         int i = 0, s = 0;<br />         label1: for (int n = 2; n <= num; n++) {<br />             for (int m = 2; m * m <= n; m++) {<br />                 if (n % m == 0)<br />                     continue label1;<br />             }<br />             s++;<br />             i++;<br />             //System.out.println("絎? + i + "涓礌鏁版槸錛? + n);<br />         }<br />         return s;<br />     }<br /> </p> <p>    //<strong><font size="4"><font color="blue">6N±1娉?/font></font></strong></p> <p>    private int prime2(int num){<br />         int i = 0, s = 0;<br />         for(int n = 2; n <=3; n ++){<br />             s++;<br />             i++;<br />             //System.out.println("絎? + i + "涓礌鏁版槸錛? + n);<br />         }<br />         label1: for(int n = 1; ; n++) {<br />             label2: for (int m = 0; m <= 1; m++) {<br />                 int tmp = 2 * (3 * n + m) - 1;<br />                 if (tmp > num)<br />                     break label1;<br />                 for(int k = 2; k * k <= tmp; k++)<br />                     if (tmp % k == 0)<br />                         if (m == 0)<br />                             continue label2;<br />                         else<br />                             continue label1;<br />                 s++;<br />                 i++;<br />                 //System.out.println("絎? + i + "涓礌鏁版槸錛? + tmp);<br />             }<br />         }<br />         return s;<br />     }<br /> <br />     public static void main(String args[]) {<br />         Scanner in = new Scanner(System.in);<br />         int num = in.nextInt();<br />         long start = System.currentTimeMillis();<br />         int sum = new Prime().prime1(num);<br />         long end = System.currentTimeMillis();<br />         System.out.println("鏂規(guī)硶涓鍏? + sum + "涓礌鏁?);<br />         System.out.println("鐢ㄦ椂錛? + (end - start));<br />         start = System.currentTimeMillis();<br />         sum = new Prime().prime2(num);<br />         end = System.currentTimeMillis();<br />         System.out.println("鏂規(guī)硶浜屽叡" + sum + "涓礌鏁?);<br />         System.out.println("鐢ㄦ椂錛? + (end - start));<br />         <br />     }<br /> }<br /> </p> <p>杈撳叆錛?000000</p> <p>榪愯緇撴灉錛?/p> <p><strong><font color="#0000ff" size="4">鏂規(guī)硶涓鍏?8498涓礌鏁?br /> 鐢ㄦ椂錛?434<br /> 鏂規(guī)硶浜屽叡78498涓礌鏁?br /> 鐢ㄦ椂錛?453</font></strong></p> <p>錛堢湅鏉ュ熀鏈柟娉曟瘮<strong><font size="4"><font color="blue">6N±1娉?/font></font></strong>榪樿鏇村揩浜涳紝濂囨簡錛屾垜鐨勭▼搴忓啓鐨勬病浠涔堥棶棰橀樋錛?br /> </p> <p><strong><font color="#0000ff" size="4"><br /> </font></strong></p> <p><strong><font color="#0000ff" size="4">銆?銆戞眰10000浠ュ唴鐨勬墍鏈夌礌鏁般?br /> </font></strong>绱犳暟鏄櫎浜?鍜屽畠鏈韓涔嬪鍐嶄笉鑳借鍏朵粬鏁版暣闄ょ殑鑷劧鏁般傜敱浜庢壘涓嶅埌涓涓氶」鍏紡鏉ヨ〃紺烘墍鏈夌殑绱犳暟錛屾墍浠ュ浜庢暟瀛﹀鏉ヨ錛岀礌鏁頒竴鐩存槸涓涓湭瑙d箣璋溿傚儚钁楀悕鐨?鍝ュ痙宸磋但鐚滄兂銆佸鐢熺礌鏁扮寽鎯籌紝鍑犵櫨騫存潵涓嶇煡鍚稿紩浜嗕笘鐣屼笂澶氬皯浼樼鐨勬暟瀛﹀銆傚敖綆′粬浠嫤蹇冮捇鐮旓紝鍛曞績娌ヨ錛屼絾鑷充粖浠嶇劧鏈鍒嗘檽銆?br /> 鑷粠鏈変簡璁$畻鏈轟箣鍚庯紝浜轟滑鍊熷姪浜庤綆楁満鐨勫▉鍔涳紝宸茬粡鎵懼埌浜?<sup>216091</sup>浠ュ唴鐨勬墍鏈夌礌鏁般?br /> 姹傜礌鏁扮殑鏂規(guī)硶鏈夊緢澶氱錛屾渶綆鍗曠殑鏂規(guī)硶鏄牴鎹礌鏁扮殑瀹氫箟鏉ユ眰銆傚浜庝竴涓嚜鐒舵暟N錛岀敤澶т簬1灝忎簬N鐨勫悇涓嚜鐒舵暟閮藉幓闄や竴涓婲錛屽鏋滈兘闄や笉灝斤紝鍒橬涓虹礌鏁幫紝鍚﹀垯N涓哄悎鏁般?br /> 浣嗘槸錛屽鏋滅敤绱犳暟瀹氫箟鐨勬柟娉曟潵緙栧埗璁$畻鏈虹▼搴忥紝瀹冪殑鏁堢巼涓瀹氭槸闈炲父浣庣殑錛屽叾涓湁璁稿鍦版柟閮藉煎緱鏀硅繘銆?br /> 絎竴錛屽浜庝竴涓嚜鐒舵暟N錛屽彧瑕佽兘琚竴涓潪1闈炶嚜韜殑鏁版暣闄わ紝瀹冨氨鑲畾涓嶆槸绱犳暟錛屾墍浠ヤ笉<br /> 蹇呭啀鐢ㄥ叾浠栫殑鏁板幓闄ゃ?br /> 絎簩錛屽浜嶯鏉ヨ錛屽彧闇鐢ㄥ皬浜嶯鐨勭礌鏁板幓闄ゅ氨鍙互浜嗐備緥濡傦紝濡傛灉N鑳借15鏁撮櫎錛屽疄闄?br /> 涓婂氨鑳借3鍜?鏁撮櫎錛屽鏋淣涓嶈兘琚?鍜?鏁撮櫎錛岄偅涔圢涔熷喅涓嶄細(xì)琚?5鏁撮櫎銆?br /> 絎笁錛屽浜嶯鏉ヨ錛屼笉蹇呯敤浠?鍒癗涓1鐨勬墍鏈夌礌鏁板幓闄わ紝鍙渶鐢ㄥ皬浜庣瓑浜?#8730;N(鏍瑰彿N)鐨勬墍鏈夌礌鏁板幓闄ゅ氨鍙互浜嗐傝繖涓鐐瑰彲浠ョ敤鍙嶈瘉娉曟潵璇佹槑錛?br /> 濡傛灉N鏄悎鏁幫紝鍒欎竴瀹氬瓨鍦ㄥぇ浜?灝忎簬N鐨勬暣鏁癲1鍜宒2錛屼嬌寰桸=d1×d2銆?br /> 濡傛灉d1鍜宒2鍧囧ぇ浜?#8730;N錛屽垯鏈夛細(xì)N錛漝1×d2>√N×√N錛漀銆?br /> 鑰岃繖鏄笉鍙兘鐨勶紝鎵浠ワ紝d1鍜宒2涓繀鏈変竴涓皬浜庢垨絳変簬√N銆?br /> 鍩轟簬涓婅堪鍒嗘瀽錛岃璁$畻娉曞涓嬶細(xì)<br /> (1)鐢?錛?錛?錛?閫愪釜璇曢櫎N鐨勬柟娉曟眰鍑?00浠ュ唴鐨勬墍鏈夌礌鏁般?br /> (2)鐢?00浠ュ唴鐨勬墍鏈夌礌鏁伴愪釜璇曢櫎鐨勬柟娉曟眰鍑?0000浠ュ唴鐨勭礌鏁般?br /> 棣栧厛錛屽皢2錛?錛?錛?鍒嗗埆瀛樻斁鍦╝[1]銆乤[2]銆乤[3]銆乤[4]涓紝浠ュ悗姣忔眰鍑轟竴涓礌鏁幫紝鍙涓嶅ぇ浜?00錛屽氨渚濇瀛樻斁鍦ˋ鏁扮粍涓殑涓涓崟鍏?涓傚綋鎴戜滑姹?00鈥?0000涔嬮棿鐨勭礌鏁版椂錛屽彲渚濇鐢╝[1]錛峚[2]鐨勭礌鏁板幓璇曢櫎N錛岃繖涓寖鍥村唴鐨勭礌鏁板彲浠ヤ笉淇濆瓨錛岀洿鎺ユ墦鍗般?br /> <br /> <font size="4"><strong><font color="blue">銆?銆戠敤絳涙硶姹傜礌鏁般?/font></strong></font><br /> 綆鍗曚粙緇嶄竴涓嬪巹鎷夊濉炵瓫娉曘傚巹鎷夊濉炴槸涓浣嶅彜甯岃厞鏁板瀹訛紝浠栧湪瀵繪壘绱犳暟鏃訛紝閲囩敤浜嗕竴縐嶄笌浼椾笉鍚岀殑鏂規(guī)硶錛氬厛灝?錛峃鐨勫悇鏁板啓鍦ㄧ焊涓婏細(xì)<br /> <img src="http://www.ywhs.net/yzren/pic/noip/prime_01.png" alt="" /><br /> 鍦?鐨勪笂闈㈢敾涓涓渾鍦堬紝鐒跺悗鍒掑幓2鐨勫叾浠栧嶆暟錛涚涓涓棦鏈敾鍦堝張娌℃湁琚垝鍘葷殑鏁版槸3錛屽皢瀹冪敾鍦堬紝鍐嶅垝鍘?鐨勫叾浠栧嶆暟錛涚幇鍦ㄦ棦鏈敾鍦堝張娌℃湁琚垝鍘葷殑絎竴涓暟 鏄?錛屽皢瀹冪敾鍦堬紝騫跺垝鍘?鐨勫叾浠栧嶆暟……渚濇綾繪帹錛屼竴鐩村埌鎵鏈夊皬浜庢垨絳変簬N鐨勫悇鏁伴兘鐢諱簡鍦堟垨鍒掑幓涓烘銆傝繖鏃訛紝琛ㄤ腑鐢諱簡鍦堢殑浠ュ強(qiáng)鏈垝鍘葷殑閭d簺鏁版濂藉氨鏄皬浜?N鐨勭礌鏁般?br /> <img src="http://www.ywhs.net/yzren/pic/noip/prime_02.png" alt="" /><br /> 榪欏緢鍍忎竴闈㈢瓫瀛愶紝鎶婃弧瓚蟲潯浠剁殑鏁扮暀涓嬫潵錛屾妸涓嶆弧瓚蟲潯浠剁殑鏁扮瓫鎺夈傜敱浜庤繖縐嶆柟娉曟槸鍘勬媺澶氬棣栧厛鍙戞槑鐨勶紝鎵浠ワ紝鍚庝漢灝辨妸榪欑鏂規(guī)硶縐頒綔鍘勬媺澶氬絳涙硶銆?br /> 鍦ㄨ綆楁満涓紝絳涙硶鍙互鐢ㄧ粰鏁扮粍鍗曞厓緗浂鐨勬柟娉曟潵瀹炵幇銆傚叿浣撴潵璇村氨鏄細(xì)棣栧厛寮涓涓暟緇勶細(xì)a[i]錛宨=1錛?錛?錛?#8230;錛屽悓鏃訛紝浠ゆ墍鏈夌殑鏁扮粍鍏冪礌閮界瓑浜庝笅鏍?鍊鹼紝鍗砤[i]=i錛屽綋i涓嶆槸绱犳暟鏃訛紝浠[i]=0 銆傚綋杈撳嚭緇撴灉鏃訛紝鍙鍒ゆ柇a[i]鏄惁絳変簬闆跺嵆鍙紝濡傛灉a[i]=0錛屽垯浠=i+1錛屾鏌ヤ笅涓涓猘[i]銆?br /> 絳涙硶鏄綆楁満紼嬪簭璁捐涓父鐢ㄧ殑綆楁硶涔嬩竴銆?br /> <br /> <strong><font size="4"><font color="blue">銆?銆戠敤6N±1娉曟眰绱犳暟銆?/font></font></strong><br /> 浠諱綍涓涓嚜鐒舵暟錛屾誨彲浠ヨ〃紺烘垚涓哄涓嬬殑褰㈠紡涔嬩竴錛?br /> 6N錛?N+1錛?N+2錛?N+3錛?N+4錛?N+5 (N=0錛?錛?錛?#8230;)<br /> 鏄劇劧錛屽綋N≥1鏃訛紝6N錛?N+2錛?N+3錛?N+4閮戒笉鏄礌鏁幫紝鍙湁褰㈠6N+1鍜?N+5鐨勮嚜鐒舵暟鏈夊彲鑳芥槸绱犳暟銆傛墍浠ワ紝闄や簡2鍜?涔嬪錛屾墍鏈夌殑绱犳暟閮藉彲浠ヨ〃紺烘垚6N±1鐨勫艦寮?N涓鴻嚜鐒舵暟)銆?br /> 鏍規(guī)嵁涓婅堪鍒嗘瀽錛屾垜浠彲浠ユ瀯閫犲彟涓闈㈢瓫瀛愶紝鍙褰㈠6 N±1鐨勮嚜鐒舵暟榪涜絳涢夛紝榪欐牱灝卞彲浠ュぇ澶у噺灝戠瓫閫夌殑嬈℃暟錛屼粠鑰岃繘涓姝ユ彁楂樼▼搴忕殑榪愯鏁堢巼鍜岄熷害銆?br /> <img src="http://www.ywhs.net/yzren/pic/noip/prime_03.png" alt="" /><br /> 鍦ㄧ▼搴忎笂錛屾垜浠彲浠ョ敤涓涓簩閲嶅驚鐜疄鐜拌繖涓鐐癸紝澶栧驚鐜痠鎸?鐨勫嶆暟閫掑錛屽唴寰幆j涓?錛?鐨勫驚鐜紝鍒?(i+j)-1鎭板ソ灝辨槸褰㈠6N±1鐨勮嚜鐒舵暟銆?/p> <img src ="http://www.tkk7.com/renyangok/aggbug/82278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/renyangok/" target="_blank">淇濆皵浠?/a> 2006-11-20 15:28 <a href="http://www.tkk7.com/renyangok/archive/2006/11/20/82278.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍚勭鎺掑簭綆楁硶java瀹炵幇http://www.tkk7.com/renyangok/archive/2006/11/20/82277.html淇濆皵浠?/dc:creator>淇濆皵浠?/author>Mon, 20 Nov 2006 07:27:00 GMThttp://www.tkk7.com/renyangok/archive/2006/11/20/82277.htmlhttp://www.tkk7.com/renyangok/comments/82277.htmlhttp://www.tkk7.com/renyangok/archive/2006/11/20/82277.html#Feedback0http://www.tkk7.com/renyangok/comments/commentRss/82277.htmlhttp://www.tkk7.com/renyangok/services/trackbacks/82277.html

鎻掑叆鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;
/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class InsertSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int temp;
聽聽聽聽聽聽聽 for(int i=1;i<data.length;i++){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,j,j-1);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }聽聽聽聽聽聽聽
聽聽聽 }

}
鍐掓場鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class BubbleSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int temp;
聽聽聽聽聽聽聽 for(int i=0;i<data.length;i++){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=data.length-1;j>i;j--){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if(data[j]<data[j-1]){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,j,j-1);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }

}

閫夋嫨鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class SelectionSort implements SortUtil.Sort {

聽聽聽 /*
聽聽聽聽 * (non-Javadoc)
聽聽聽聽 *
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int temp;
聽聽聽聽聽聽聽 for (int i = 0; i < data.length; i++) {
聽聽聽聽聽聽聽聽聽聽聽 int lowIndex = i;
聽聽聽聽聽聽聽聽聽聽聽 for (int j = data.length - 1; j > i; j--) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (data[j] < data[lowIndex]) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lowIndex = j;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,i,lowIndex);
聽聽聽聽聽聽聽 }
聽聽聽 }

}

Shell鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class ShellSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 for(int i=data.length/2;i>2;i/=2){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=0;j<i;j++){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 insertSort(data,j,i);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 insertSort(data,0,1);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * @param data
聽聽聽聽 * @param j
聽聽聽聽 * @param i
聽聽聽聽 */
聽聽聽 private void insertSort(int[] data, int start, int inc) {
聽聽聽聽聽聽聽 int temp;
聽聽聽聽聽聽聽 for(int i=start+inc;i<data.length;i+=inc){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=i;(j>=inc)&&(data[j]<data[j-inc]);j-=inc){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,j,j-inc);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }

}

蹇熸帓搴?

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class QuickSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 quickSort(data,0,data.length-1);聽聽聽聽聽聽聽
聽聽聽 }
聽聽聽 private void quickSort(int[] data,int i,int j){
聽聽聽聽聽聽聽 int pivotIndex=(i+j)/2;
聽聽聽聽聽聽聽 //swap
聽聽聽聽聽聽聽 SortUtil.swap(data,pivotIndex,j);
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 int k=partition(data,i-1,j,data[j]);
聽聽聽聽聽聽聽 SortUtil.swap(data,k,j);
聽聽聽聽聽聽聽 if((k-i)>1) quickSort(data,i,k-1);
聽聽聽聽聽聽聽 if((j-k)>1) quickSort(data,k+1,j);
聽聽聽聽聽聽聽
聽聽聽 }
聽聽聽 /**
聽聽聽聽 * @param data
聽聽聽聽 * @param i
聽聽聽聽 * @param j
聽聽聽聽 * @return
聽聽聽聽 */
聽聽聽 private int partition(int[] data, int l, int r,int pivot) {
聽聽聽聽聽聽聽 do{
聽聽聽聽聽聽聽聽聽聽 while(data[++l]<pivot);
聽聽聽聽聽聽聽聽聽聽 while((r!=0)&&data[--r]>pivot);
聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,l,r);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 while(l<r);
聽聽聽聽聽聽聽 SortUtil.swap(data,l,r);聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 return l;
聽聽聽 }

}
鏀硅繘鍚庣殑蹇熸帓搴?

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class ImprovedQuickSort implements SortUtil.Sort {

聽聽聽 private static int MAX_STACK_SIZE=4096;
聽聽聽 private static int THRESHOLD=10;
聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int[] stack=new int[MAX_STACK_SIZE];
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 int top=-1;
聽聽聽聽聽聽聽 int pivot;
聽聽聽聽聽聽聽 int pivotIndex,l,r;
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 stack[++top]=0;
聽聽聽聽聽聽聽 stack[++top]=data.length-1;
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 while(top>0){
聽聽聽聽聽聽聽聽聽聽聽 int j=stack[top--];
聽聽聽聽聽聽聽聽聽聽聽 int i=stack[top--];
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 pivotIndex=(i+j)/2;
聽聽聽聽聽聽聽聽聽聽聽 pivot=data[pivotIndex];
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,pivotIndex,j);
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 //partition
聽聽聽聽聽聽聽聽聽聽聽 l=i-1;
聽聽聽聽聽聽聽聽聽聽聽 r=j;
聽聽聽聽聽聽聽聽聽聽聽 do{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 while(data[++l]<pivot);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 while((r!=0)&&(data[--r]>pivot));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,l,r);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 while(l<r);
聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,l,r);
聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,l,j);
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 if((l-i)>THRESHOLD){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stack[++top]=i;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stack[++top]=l-1;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 if((j-l)>THRESHOLD){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stack[++top]=l+1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stack[++top]=j;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 //new InsertSort().sort(data);
聽聽聽聽聽聽聽 insertSort(data);
聽聽聽 }
聽聽聽 /**
聽聽聽聽 * @param data
聽聽聽聽 */
聽聽聽 private void insertSort(int[] data) {
聽聽聽聽聽聽聽 int temp;
聽聽聽聽聽聽聽 for(int i=1;i<data.length;i++){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,j,j-1);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }聽聽聽聽聽聽
聽聽聽 }

}

褰掑茍鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class MergeSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int[] temp=new int[data.length];
聽聽聽聽聽聽聽 mergeSort(data,temp,0,data.length-1);
聽聽聽 }
聽聽聽
聽聽聽 private void mergeSort(int[] data,int[] temp,int l,int r){
聽聽聽聽聽聽聽 int mid=(l+r)/2;
聽聽聽聽聽聽聽 if(l==r) return ;
聽聽聽聽聽聽聽 mergeSort(data,temp,l,mid);
聽聽聽聽聽聽聽 mergeSort(data,temp,mid+1,r);
聽聽聽聽聽聽聽 for(int i=l;i<=r;i++){
聽聽聽聽聽聽聽聽聽聽聽 temp[i]=data[i];
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 int i1=l;
聽聽聽聽聽聽聽 int i2=mid+1;
聽聽聽聽聽聽聽 for(int cur=l;cur<=r;cur++){
聽聽聽聽聽聽聽聽聽聽聽 if(i1==mid+1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[cur]=temp[i2++];
聽聽聽聽聽聽聽聽聽聽聽 else if(i2>r)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[cur]=temp[i1++];
聽聽聽聽聽聽聽聽聽聽聽 else if(temp[i1]<temp[i2])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[cur]=temp[i1++];
聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[cur]=temp[i2++];聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 }
聽聽聽 }

}

鏀硅繘鍚庣殑褰掑茍鎺掑簭:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class ImprovedMergeSort implements SortUtil.Sort {

聽聽聽 private static final int THRESHOLD = 10;

聽聽聽 /*
聽聽聽聽 * (non-Javadoc)
聽聽聽聽 *
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 int[] temp=new int[data.length];
聽聽聽聽聽聽聽 mergeSort(data,temp,0,data.length-1);
聽聽聽 }

聽聽聽 private void mergeSort(int[] data, int[] temp, int l, int r) {
聽聽聽聽聽聽聽 int i, j, k;
聽聽聽聽聽聽聽 int mid = (l + r) / 2;
聽聽聽聽聽聽聽 if (l == r)
聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽 if ((mid - l) >= THRESHOLD)
聽聽聽聽聽聽聽聽聽聽聽 mergeSort(data, temp, l, mid);
聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽 insertSort(data, l, mid - l + 1);
聽聽聽聽聽聽聽 if ((r - mid) > THRESHOLD)
聽聽聽聽聽聽聽聽聽聽聽 mergeSort(data, temp, mid + 1, r);
聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽 insertSort(data, mid + 1, r - mid);

聽聽聽聽聽聽聽 for (i = l; i <= mid; i++) {
聽聽聽聽聽聽聽聽聽聽聽 temp[i] = data[i];
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 for (j = 1; j <= r - mid; j++) {
聽聽聽聽聽聽聽聽聽聽聽 temp[r - j + 1] = data[j + mid];
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 int a = temp[l];
聽聽聽聽聽聽聽 int b = temp[r];
聽聽聽聽聽聽聽 for (i = l, j = r, k = l; k <= r; k++) {
聽聽聽聽聽聽聽聽聽聽聽 if (a < b) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[k] = temp[i++];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 a = temp[i];
聽聽聽聽聽聽聽聽聽聽聽 } else {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 data[k] = temp[j--];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 b = temp[j];
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * @param data
聽聽聽聽 * @param l
聽聽聽聽 * @param i
聽聽聽聽 */
聽聽聽 private void insertSort(int[] data, int start, int len) {
聽聽聽聽聽聽聽 for(int i=start+1;i<start+len;i++){
聽聽聽聽聽聽聽聽聽聽聽 for(int j=i;(j>start) && data[j]<data[j-1];j--){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(data,j,j-1);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }

}
鍫嗘帓搴?

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class HeapSort implements SortUtil.Sort{

聽聽聽 /* (non-Javadoc)
聽聽聽聽 * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
聽聽聽聽 */
聽聽聽 public void sort(int[] data) {
聽聽聽聽聽聽聽 MaxHeap h=new MaxHeap();
聽聽聽聽聽聽聽 h.init(data);
聽聽聽聽聽聽聽 for(int i=0;i<data.length;i++)
聽聽聽聽聽聽聽聽聽聽聽 h.remove();
聽聽聽聽聽聽聽 System.arraycopy(h.queue,1,data,0,data.length);
聽聽聽 }


聽聽聽聽 private static class MaxHeap{
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 void init(int[] data){
聽聽聽聽聽聽聽聽聽聽聽 this.queue=new int[data.length+1];
聽聽聽聽聽聽聽聽聽聽聽 for(int i=0;i<data.length;i++){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 queue[++size]=data[i];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 fixUp(size);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 private int size=0;

聽聽聽聽聽聽聽 private int[] queue;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 public int get() {
聽聽聽聽聽聽聽聽聽聽聽 return queue[1];
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public void remove() {
聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(queue,1,size--);
聽聽聽聽聽聽聽聽聽聽聽 fixDown(1);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 //fixdown
聽聽聽聽聽聽聽 private void fixDown(int k) {
聽聽聽聽聽聽聽聽聽聽聽 int j;
聽聽聽聽聽聽聽聽聽聽聽 while ((j = k << 1) <= size) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (j < size && queue[j]<queue[j+1])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 j++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (queue[k]>queue[j]) //涓嶇敤浜ゆ崲
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(queue,j,k);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 k = j;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 private void fixUp(int k) {
聽聽聽聽聽聽聽聽聽聽聽 while (k > 1) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int j = k >> 1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (queue[j]>queue[k])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SortUtil.swap(queue,j,k);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 k = j;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }

聽聽聽 }

}

SortUtil:

package org.rut.util.algorithm;

import org.rut.util.algorithm.support.BubbleSort;
import org.rut.util.algorithm.support.HeapSort;
import org.rut.util.algorithm.support.ImprovedMergeSort;
import org.rut.util.algorithm.support.ImprovedQuickSort;
import org.rut.util.algorithm.support.InsertSort;
import org.rut.util.algorithm.support.MergeSort;
import org.rut.util.algorithm.support.QuickSort;
import org.rut.util.algorithm.support.SelectionSort;
import org.rut.util.algorithm.support.ShellSort;

/**
聽* @author treeroot
聽* @since 2006-2-2
聽* @version 1.0
聽*/
public class SortUtil {
聽聽聽 public final static int INSERT = 1;

聽聽聽 public final static int BUBBLE = 2;

聽聽聽 public final static int SELECTION = 3;

聽聽聽 public final static int SHELL = 4;

聽聽聽 public final static int QUICK = 5;

聽聽聽 public final static int IMPROVED_QUICK = 6;

聽聽聽 public final static int MERGE = 7;

聽聽聽 public final static int IMPROVED_MERGE = 8;

聽聽聽 public final static int HEAP = 9;

聽聽聽 public static void sort(int[] data) {
聽聽聽聽聽聽聽 sort(data, IMPROVED_QUICK);
聽聽聽 }
聽聽聽 private static String[] name={
聽聽聽聽聽聽聽聽聽聽聽 "insert","bubble","selection","shell","quick","improved_quick","merge","improved_merge","heap"
聽聽聽 };
聽聽聽
聽聽聽 private static Sort[] impl=new Sort[]{
聽聽聽聽聽聽聽聽聽聽聽 new InsertSort(),
聽聽聽聽聽聽聽聽聽聽聽 new BubbleSort(),
聽聽聽聽聽聽聽聽聽聽聽 new SelectionSort(),
聽聽聽聽聽聽聽聽聽聽聽 new ShellSort(),
聽聽聽聽聽聽聽聽聽聽聽 new QuickSort(),
聽聽聽聽聽聽聽聽聽聽聽 new ImprovedQuickSort(),
聽聽聽聽聽聽聽聽聽聽聽 new MergeSort(),
聽聽聽聽聽聽聽聽聽聽聽 new ImprovedMergeSort(),
聽聽聽聽聽聽聽聽聽聽聽 new HeapSort()
聽聽聽 };

聽聽聽 public static String toString(int algorithm){
聽聽聽聽聽聽聽 return name[algorithm-1];
聽聽聽 }
聽聽聽
聽聽聽 public static void sort(int[] data, int algorithm) {
聽聽聽聽聽聽聽 impl[algorithm-1].sort(data);
聽聽聽 }

聽聽聽 public static interface Sort {
聽聽聽聽聽聽聽 public void sort(int[] data);
聽聽聽 }

聽聽聽 public static void swap(int[] data, int i, int j) {
聽聽聽聽聽聽聽 int temp = data[i];
聽聽聽聽聽聽聽 data[i] = data[j];
聽聽聽聽聽聽聽 data[j] = temp;
聽聽聽 }
}



]]>
主站蜘蛛池模板: www.亚洲精品| 全黄A免费一级毛片| 99在线精品视频观看免费| 亚洲成a人片在线观看中文动漫| 13小箩利洗澡无码视频网站免费| 国产亚洲日韩在线三区| 久久九九免费高清视频| 久久影视国产亚洲| 国产特黄一级一片免费 | 91精品导航在线网址免费| 无码欧精品亚洲日韩一区| 久操视频免费观看| 久久精品国产亚洲AV麻豆网站 | 国产亚洲人成网站观看| 日本在线看片免费| 亚洲AV本道一区二区三区四区| 全部免费毛片在线播放| 亚洲激情黄色小说| 99热在线精品免费全部my| 欧洲 亚洲 国产图片综合| 免费的一级片网站| 爱情岛论坛亚洲品质自拍视频网站| 免费v片在线观看品善网| 一级人做人a爰免费视频| 成人自慰女黄网站免费大全| 亚洲国产另类久久久精品黑人| 国内精品久久久久影院免费| 亚洲久本草在线中文字幕| 亚洲免费网站在线观看| 日韩亚洲产在线观看| 免费亚洲视频在线观看| 精品国产免费一区二区三区| 亚洲Av综合色区无码专区桃色| 免费国产黄网站在线观看| 久久精品国产99国产精品亚洲| 国产特级淫片免费看| 国产99视频精品免费视频76| 亚洲国产成人久久综合碰碰动漫3d| 成人免费福利视频| 精品国产亚洲第一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品 |