﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-不晓得哪个</title><link>http://www.cppblog.com/hippies/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:16:12 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:16:12 GMT</pubDate><ttl>60</ttl><item><title>二分搜索算法（迭代，递归）</title><link>http://www.cppblog.com/hippies/archive/2010/02/22/108227.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Mon, 22 Feb 2010 07:14:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2010/02/22/108227.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/108227.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2010/02/22/108227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/108227.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/108227.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;bnsearch(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">array,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;value)<br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;left</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,right</span><span style="color: #000000;">=</span><span style="color: #000000;">n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(left</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">right)<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;middle</span><span style="color: #000000;">=</span><span style="color: #000000;">(left</span><span style="color: #000000;">+</span><span style="color: #000000;">right)</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(array[middle]</span><span style="color: #000000;">==</span><span style="color: #000000;">value)&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;middle;&nbsp;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(value</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">array[middle])<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;left</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;re_bnsearch(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">array,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;left,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;right,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;value)<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;middle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;left&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;((right&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;left)&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">)&nbsp;;<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(right</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">left)<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(value</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">array[middle])<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;re_bnsearch(array,left,right,value);<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(array[middle]</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">value)<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left</span><span style="color: #000000;">=</span><span style="color: #000000;">middle</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;re_bnsearch(array,left,right,value);<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;middle;<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><img src ="http://www.cppblog.com/hippies/aggbug/108227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2010-02-22 15:14 <a href="http://www.cppblog.com/hippies/archive/2010/02/22/108227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vim配置备份</title><link>http://www.cppblog.com/hippies/archive/2010/01/27/106563.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Wed, 27 Jan 2010 15:28:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2010/01/27/106563.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/106563.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2010/01/27/106563.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/106563.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/106563.html</trackback:ping><description><![CDATA[syntax on<br>set tabstop=4<br>set softtabstop=4<br>set shiftwidth=4<br>set autoindent<br>set cindent<br>set nu<br>set showmatch<br>set tags=tags;<br>set autochdir<br>let Tlist_Auto_Open=1<br>let Tlist_Auto_Update=1<br>let Tlist_Enable_Fold_Column=1<br>let Tlist_Sort_Type = "name"<br>let Tlist_WinWidth = 30<br>let Tlist_Show_One_File = 0<br>let Tlist_Exit_OnlyWindow = 1<br>let Tlist_Use_SingleClick = 1<br>map &lt;F8&gt; :Tlist&lt;CR&gt;:&lt;CR&gt;<br>map &lt;F9&gt; :wincmd p&lt;CR&gt;<br><br><br><img src ="http://www.cppblog.com/hippies/aggbug/106563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2010-01-27 23:28 <a href="http://www.cppblog.com/hippies/archive/2010/01/27/106563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从windows读取linux分区里的文件</title><link>http://www.cppblog.com/hippies/archive/2010/01/21/106150.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Thu, 21 Jan 2010 08:28:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2010/01/21/106150.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/106150.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2010/01/21/106150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/106150.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/106150.html</trackback:ping><description><![CDATA[<strong> R-Linu</strong>
这个软件支持ext2/3/4<br>http://www.data-recovery-software.net/Linux_Recovery_Download.shtml
<br> <img src ="http://www.cppblog.com/hippies/aggbug/106150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2010-01-21 16:28 <a href="http://www.cppblog.com/hippies/archive/2010/01/21/106150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++运算符 优先级列表</title><link>http://www.cppblog.com/hippies/archive/2010/01/03/104686.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Sun, 03 Jan 2010 07:16:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2010/01/03/104686.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/104686.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2010/01/03/104686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/104686.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/104686.html</trackback:ping><description><![CDATA[http://www.cppreference.com/wiki/operator_precedence
<br><img src ="http://www.cppblog.com/hippies/aggbug/104686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2010-01-03 15:16 <a href="http://www.cppblog.com/hippies/archive/2010/01/03/104686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>哈希表（连接法）V0.000001</title><link>http://www.cppblog.com/hippies/archive/2009/12/31/104558.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Thu, 31 Dec 2009 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/31/104558.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/104558.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/31/104558.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/104558.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/104558.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1，哈希函数用的上一篇文章中的第一个DJB（不知道实现正确了没 :P）2，冲突是用的连接表3，代码虽然能勉强运行，但是比较糟糕。。。。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;/*&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.cppblog.com/hippies/archive/2009/12/31/104558.html'>阅读全文</a><img src ="http://www.cppblog.com/hippies/aggbug/104558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-31 14:33 <a href="http://www.cppblog.com/hippies/archive/2009/12/31/104558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些经典字符串哈希函数算法的 PHP 实现</title><link>http://www.cppblog.com/hippies/archive/2009/12/24/103966.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Thu, 24 Dec 2009 09:36:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/24/103966.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/103966.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/24/103966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/103966.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/103966.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 记录一些经典字符串哈希函数算法，虽然是 PHP 的，但是很容易改为 C 的转自：http://www.flyinghail.net/?p=65注释：int ord( string $string) PHP中返回string字符串中首字母的ASCII码。算法的一些说明：    函数后面注释中是我本地测试的执行1000次的速度（单位：s），可以看出来MD5Hash是最快的，而且...&nbsp;&nbsp;<a href='http://www.cppblog.com/hippies/archive/2009/12/24/103966.html'>阅读全文</a><img src ="http://www.cppblog.com/hippies/aggbug/103966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-24 17:36 <a href="http://www.cppblog.com/hippies/archive/2009/12/24/103966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计数排序</title><link>http://www.cppblog.com/hippies/archive/2009/12/19/103501.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Fri, 18 Dec 2009 17:35:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/19/103501.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/103501.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/19/103501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/103501.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/103501.html</trackback:ping><description><![CDATA[逻辑比较简单的算法，却用了比较长的时间来实现，主要时间花在三个数组边界上面了，代码很丑，将就了<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">time.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;MAX&nbsp;100</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;MAX2&nbsp;200</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;RANDOM(x)&nbsp;(rand()%x)</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;counting_sort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">arr,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;size)<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,min,max</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,range;<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">temp,</span><span style="color: #000000;">*</span><span style="color: #000000;">des;<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">min=max=arr[0];</span><span style="color: #008000;"><br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">size;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(arr[i]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">max)&nbsp;max</span><span style="color: #000000;">=</span><span style="color: #000000;">arr[i];<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">if(arr[i]&gt;max)max=arr[i];<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">if(arr[i]&lt;min)min=arr[i];</span><span style="color: #008000;"><br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;range</span><span style="color: #000000;">=</span><span style="color: #000000;">max</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(range</span><span style="color: #000000;">*</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">));<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;des&nbsp;&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(range</span><span style="color: #000000;">*</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">));<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">range;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">size;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[arr[i]]</span><span style="color: #000000;">+=</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">range;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">temp[i]</span><span style="color: #000000;">+</span><span style="color: #000000;">temp[i</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;">&nbsp;0</span><span style="color: #000000;"><br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">temp=</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">range;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,temp[i]);<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">size</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">--</span><span style="color: #000000;">)<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des[temp[arr[i]]]</span><span style="color: #000000;">=</span><span style="color: #000000;">arr[i];<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[arr[i]]</span><span style="color: #000000;">-=</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;des;<br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;arr</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(MAX</span><span style="color: #000000;">*</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">));<br></span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">get</span><span style="color: #000000;">;<br></span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;srand(time(</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br></span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">RANDOM(MAX2);<br></span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\t",arr[i]);</span><span style="color: #008000;"><br></span><span style="color: #008080;">58</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">get</span><span style="color: #000000;">=</span><span style="color: #000000;">counting_sort(arr,MAX);<br></span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d\t</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #0000ff;">get</span><span style="color: #000000;">[i]);<br></span><span style="color: #008080;">63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">64</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><img src ="http://www.cppblog.com/hippies/aggbug/103501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-19 01:35 <a href="http://www.cppblog.com/hippies/archive/2009/12/19/103501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串匹配算法（普通BF）</title><link>http://www.cppblog.com/hippies/archive/2009/12/16/103313.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Wed, 16 Dec 2009 03:01:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/16/103313.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/103313.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/16/103313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/103313.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/103313.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">**</span><span style="color: #000000;">argv)<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,m</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,n</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">src</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">a&nbsp;ab&nbsp;abc&nbsp;abcd&nbsp;abcde&nbsp;abcdef&nbsp;abcdefg&nbsp;abcdefgh&nbsp;abcdefghi&nbsp;abcdefghij&nbsp;abcdefghijk&nbsp;abcdefghijkl&nbsp;abcdefghijklm&nbsp;abcdefghijklmn&nbsp;abcdefghijklmno&nbsp;abcdefghijklmnop&nbsp;abcdefghijklmnopq&nbsp;abcdefghijklmnopq&nbsp;abcdefghijklmnopq&nbsp;abcdefghijklmnopq&nbsp;abcdefghijklmnopqr&nbsp;abcdefghijklmnopqrs&nbsp;abcdefghijklmnopqrst&nbsp;abcdefghijklmnopqrstuv&nbsp;abcdefghijklmnopqrstuvw&nbsp;abcdefghijklmnopqrstuvwx&nbsp;abcdefghijklmnopqrstuvwxy&nbsp;abcdefghijklmnopqrstuvwxyz</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">des</span><span style="color: #000000;">=</span><span style="color: #000000;">argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(argc</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">usage:&nbsp;%s&nbsp;str_des\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,argv[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;printf("src=%s\n",src);<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #008000;"></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;printf("des=%s\n",des);</span><span style="color: #008000;"><br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">strlen(src);<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">strlen(des);<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">((m</span><span style="color: #000000;">=</span><span style="color: #000000;">m</span><span style="color: #000000;">-</span><span style="color: #000000;">n</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(src[m</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;">des[n])<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(n</span><span style="color: #000000;">==</span><span style="color: #000000;">j</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;\</span><span style="color: #000000;">"</span><span style="color: #000000;">%</span><span style="color: #000000;">s\</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;is&nbsp;fond&nbsp;in&nbsp;the&nbsp;src&nbsp;on&nbsp;%d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">],m</span><span style="color: #000000;">-</span><span style="color: #000000;">n);<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #000000;">++</span><span style="color: #000000;">,n</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;\</span><span style="color: #000000;">"</span><span style="color: #000000;">%</span><span style="color: #000000;">s\</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;is&nbsp;&nbsp;NOT&nbsp;in&nbsp;the&nbsp;src\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><img src ="http://www.cppblog.com/hippies/aggbug/103313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-16 11:01 <a href="http://www.cppblog.com/hippies/archive/2009/12/16/103313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>堆排序</title><link>http://www.cppblog.com/hippies/archive/2009/12/16/103304.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Wed, 16 Dec 2009 02:45:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/16/103304.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/103304.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/16/103304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/103304.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/103304.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;MAX&nbsp;10</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;RANDOM(x)&nbsp;rand()%x</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">swap(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">a,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">b)<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;tmp;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="color: #000000;">=*</span><span style="color: #000000;">a;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">a</span><span style="color: #000000;">=*</span><span style="color: #000000;">b;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">b</span><span style="color: #000000;">=</span><span style="color: #000000;">tmp;<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;heapify(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">arr,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;size,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i)<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;largest</span><span style="color: #000000;">=</span><span style="color: #000000;">i,left</span><span style="color: #000000;">=</span><span style="color: #000000;">i</span><span style="color: #000000;">*</span><span style="color: #000000;">2</span><span style="color: #000000;">,right</span><span style="color: #000000;">=</span><span style="color: #000000;">(i</span><span style="color: #000000;">*</span><span style="color: #000000;">2</span><span style="color: #000000;">)</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(left</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">size</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">arr[left]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">arr[i])<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;largest</span><span style="color: #000000;">=</span><span style="color: #000000;">left;<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;largest</span><span style="color: #000000;">=</span><span style="color: #000000;">i;<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(right</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">size</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">arr[right]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">arr[largest])<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;largest</span><span style="color: #000000;">=</span><span style="color: #000000;">right;<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(largest</span><span style="color: #000000;">!=</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">arr[i],</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">arr[largest]);<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;heapify(arr,size,largest);<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;build_heap(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">arr,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;size)<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">size</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;i</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">--</span><span style="color: #000000;">)<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;heapify(arr,size,i);<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">heap_sort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">arr,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;size)<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;build_heap(arr,size);<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">size</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">--</span><span style="color: #000000;">)<br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">arr[</span><span style="color: #000000;">0</span><span style="color: #000000;">],</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">arr[i]);<br></span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size</span><span style="color: #000000;">-=</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;heapify(arr,size,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br></span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">52</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,arr[MAX</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br></span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">arr[]={4,1,3,2,16,9,10,14,8,7};</span><span style="color: #008000;"><br></span><span style="color: #008080;">58</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;srand(time(</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br></span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">RANDOM(</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br></span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,arr[i]);<br></span><span style="color: #008080;">63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;heap_sort(arr,MAX);<br></span><span style="color: #008080;">66</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,arr[i]);<br></span><span style="color: #008080;">70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">72</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><img src ="http://www.cppblog.com/hippies/aggbug/103304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-16 10:45 <a href="http://www.cppblog.com/hippies/archive/2009/12/16/103304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell排序</title><link>http://www.cppblog.com/hippies/archive/2009/12/07/102736.html</link><dc:creator>缘分游走</dc:creator><author>缘分游走</author><pubDate>Mon, 07 Dec 2009 09:53:00 GMT</pubDate><guid>http://www.cppblog.com/hippies/archive/2009/12/07/102736.html</guid><wfw:comment>http://www.cppblog.com/hippies/comments/102736.html</wfw:comment><comments>http://www.cppblog.com/hippies/archive/2009/12/07/102736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hippies/comments/commentRss/102736.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hippies/services/trackbacks/102736.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">time.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;MAX&nbsp;20</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;RANDOM(x)&nbsp;rand()%x</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;shell_sort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">arr,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n)<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,k,temp,gap;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;gaps[]</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;">4</span><span style="color: #000000;">,</span><span style="color: #000000;">13</span><span style="color: #000000;">,</span><span style="color: #000000;">100</span><span style="color: #000000;">,</span><span style="color: #000000;">301</span><span style="color: #000000;">,};<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(k</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;gaps[k]</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;k</span><span style="color: #000000;">++</span><span style="color: #000000;">);<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">--</span><span style="color: #000000;">k</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gap</span><span style="color: #000000;">=</span><span style="color: #000000;">gaps[k];<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">gap;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp</span><span style="color: #000000;">=</span><span style="color: #000000;">arr[i];<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">i;<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(arr[j</span><span style="color: #000000;">-</span><span style="color: #000000;">gap]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">temp</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">j</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">gap)<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[j]</span><span style="color: #000000;">=</span><span style="color: #000000;">arr[j</span><span style="color: #000000;">-</span><span style="color: #000000;">gap];<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">j</span><span style="color: #000000;">-</span><span style="color: #000000;">gap;<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[j]</span><span style="color: #000000;">=</span><span style="color: #000000;">temp;<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;arr[MAX];<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;srand(time(</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">RANDOM(</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,arr[i]);<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;shell_sort(arr,MAX);<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">MAX;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,arr[i]);<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">}</span></div>
<br><img src ="http://www.cppblog.com/hippies/aggbug/102736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hippies/" target="_blank">缘分游走</a> 2009-12-07 17:53 <a href="http://www.cppblog.com/hippies/archive/2009/12/07/102736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>