﻿<?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/Ylemzy/category/10806.html</link><description>足迹的足迹</description><language>zh-cn</language><lastBuildDate>Fri, 27 Apr 2012 04:30:05 GMT</lastBuildDate><pubDate>Fri, 27 Apr 2012 04:30:05 GMT</pubDate><ttl>60</ttl><item><title>LPCTSTR,LPCSTR,LPSTR和LPTSTR的含义</title><link>http://www.cppblog.com/Ylemzy/articles/171353.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Sat, 14 Apr 2012 06:26:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/171353.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/171353.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/171353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/171353.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/171353.html</trackback:ping><description><![CDATA[<div><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">UNICODE：它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符，可'A'在UNICODE下面是两个字符,高字符用0填充，而且汉字'程'在ASCII下面是两个字节，而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字，据统计，用两个字节可以编 现存的所有文字而没有二义。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />MBCS，它是多字节字符集，它是不定长表示世界文字的编 。MBCS表示英文字母时就和ASCII一 （这也是我们容易把MBCS和ASCII搞混的原 ），但表示其他文字时就需要用多字节。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr></p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">WINDOWS下面的程序设计可以支持MBCS和UNICODE两种编码的字符串，具体用<br />那种就看定义了MBCS宏还是UNICODE宏。MBCS宏对应的字符串指针是char*也就是LPSTR，UNICODE对应的指针是unsigned short*也就是LPWSTR，为了写程序方便微软定义了类型LPTSTR，在MBCS下他就是char*,在UNICODE下它是unsigned char*,这 就可以重定义一个宏进行不同字符集的转换了。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义：</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;&nbsp;<wbr>&nbsp;<wbr>&nbsp;LPSTR: 32bit指针指向一个字符串，每个字符占1字节<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;LPCSTR: 32-bit指针指向一个常字符串，每个字符占1字节<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;LPCTSTR: 32-bit指针指向一个常字符串,每字符可能占1字节或2字节，取决于Unicode是否定义<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;LPTSTR: 32-bit指针每字符可能占1字节或2字节，取决于Unicode是否定义</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">Windows使用两种字符集ANSI和UNICODE，前者就是通常使用的单字节方式，但这种方式处理象中文这样的双字节字符不方便，容易出现半个汉字的情况。而后者是双字节方式，方便处理双字节字符。WindowsNT的所有与字符有关的函数都提供两种方式的版本，而Windows9x只支持ANSI方式。_T一般同字常数相关，如_T("Hello"。如果你编译一个程序为ANSI方式，_T实际不起任何作用。而如果编译一个程序为UNICODE方式，则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于，_L不管你是以什么方式编译，一律以UNICODE方式保存.</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">Windows核心编程的第一章。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">L是表示字符串资源为Unicode的。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">比如<br />wchar_t Str[] = L"Hello World!";<br />这个就是双子节存储字符了。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">_T是一个适配的宏～</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">当<br />#ifdef _UNICODE的时候<br />_T就是L<br />没有#ifdef _UNICODE的时候<br />_T就是ANSI的。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">比如</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">LPTSTR lpStr = new TCHAR[32];<br />TCHAR* szBuf = _T("Hello");<br />以上两句使得无论是在UNICODE编译条件下都是正确编译的。<br />而且MS推荐你使用相匹配的字符串函数。<br />比如处理LPTSTR或者LPCTSTR 的时候，不要用strlen ,而是要用_tcslen<br />否则在UNICODE的编译条件下，strlen不能处理 wchar_t*的字符串。</p><p style="margin-top: 0px; margin-right: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; word-wrap: normal; word-break: normal; color: #494949; font-family: simsun; text-align: left; background-color: #ffffff; ">T是非常有意思的一个符号（TCHAR、LPCTSTR、LPTSTR、_T()、_TEXT()...），它表示使用一种中间类型，既不明确表示使用 MBCS，也不明确表示使用 UNICODE。那到底使用哪种字符集?编译的时候才决定<br /><br /><br /><strong style="font-weight: bold; ">LPTSTR和PSTR区别<br /></strong><br />LP和P在win32中是等效的，都是指针的意思。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />PTSTR的定义&nbsp;typedef LPWSTR PTSTR, LPTSTR;<br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;STR表示字符串。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;问题就出在T上面。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;T是一个宏，当没定义unicode时为空，定义unicode后表示为宽字符。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;所以当定义unicode后，PTSTR转换为PSTR（LPSTR，一样意思)就不能直接转换了，因为一个是unicode,一个是ascii&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;结论：unicode下，PTSTR转换为PSTR是个编码转换问题。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;编码转换可以用MS的函数完成。&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;WideCharToMultiByte将unicode转换成ascii&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr><br />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;MultiByteToWideChar将ascii转换成unicode&nbsp;<wbr>&nbsp;<br />转载自</p><div><h1><a href="http://blog.sina.com.cn/yl451321692" style="color: #6d3a23; "><span id="blognamespan">bighorn的博客</span></a></h1></div></div><img src ="http://www.cppblog.com/Ylemzy/aggbug/171353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2012-04-14 14:26 <a href="http://www.cppblog.com/Ylemzy/articles/171353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DES加密算法</title><link>http://www.cppblog.com/Ylemzy/articles/142724.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Fri, 25 Mar 2011 09:00:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/142724.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/142724.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/142724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/142724.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/142724.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DES加解密时产生的子密钥DES算法共需要进行16轮迭代运算，每轮迭代运算使用一个子密钥，共需要16个子密钥。子密钥是从用户输入的初始密钥产生的，用户输入的初始密钥K为64位，其中有8位用于奇偶校验，分别位于第8,16,24,32,40,48,56,64位。奇偶校验位用于检查密钥K在产生和分配以及存储过程中可能发生的错误，这样DES的密钥实际上只有56位。加密过程生成的子密钥首先密钥经...&nbsp;&nbsp;<a href='http://www.cppblog.com/Ylemzy/articles/142724.html'>阅读全文</a><img src ="http://www.cppblog.com/Ylemzy/aggbug/142724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2011-03-25 17:00 <a href="http://www.cppblog.com/Ylemzy/articles/142724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>按位异或</title><link>http://www.cppblog.com/Ylemzy/articles/96147.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Mon, 14 Sep 2009 11:46:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/96147.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/96147.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/96147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/96147.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/96147.html</trackback:ping><description><![CDATA[<span style="color: #1852ff;">参与运算的两个值，如果两个相应bit位相同，则结果为0，否则为1。</span><br style="color: #1852ff;"><span style="color: #1852ff;">即：</span><br style="color: #1852ff;"><span style="color: #1852ff;">　　　0^0 = 0， </span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1^0 = 1， </span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0^1 = 1， </span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1^1 = 0</span><br style="color: #1852ff;"><br style="color: #1852ff;"><span style="color: #1852ff;">例如：10100001^00010001=10110000</span><br style="color: #1852ff;"><br style="color: #1852ff;"><font style="font-weight: bold; color: #1852ff;" size="4">按位异或的3个特点</font><span style="color: #1852ff;">:</span><br style="color: #1852ff;"><span style="color: #1852ff;">(1) 0^0=0,0^1=1&nbsp; 0异或任何数＝任何数</span><br style="color: #1852ff;"><span style="color: #1852ff;">(2) 1^0=1,1^1=0&nbsp; 1异或任何数－任何数取反</span><br style="color: #1852ff;"><span style="color: #1852ff;">(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任何数异或自己＝把自己置0</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><br style="color: #1852ff;"><font style="font-weight: bold; color: #1852ff;" size="4">按位异或的几个常见用途</font><span style="color: #1852ff;">:</span><br style="color: #1852ff;"><span style="color: #1852ff;">(1) 使某些特定的位翻转</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; 例如对数10100001的第2位和第3位翻转，则可以将该数与00000110进行按位异或运算。</span><br style="color: #1852ff;"><span style="color: #1852ff;">　　　　　&nbsp; 10100001^00000110 = 10100111</span><br style="color: #1852ff;"><br style="color: #1852ff;"><span style="color: #1852ff;">(2) 实现两个值的交换，而不必使用临时变量。</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; 例如交换两个整数a=10100001，b=00000110的值，可通过下列语句实现：</span><br style="color: #1852ff;"><span style="color: #1852ff;">　　　　a = a^b； 　　//a=10100111</span><br style="color: #1852ff;"><span style="color: #1852ff;">　　　　b = b^a； 　　//b=10100001</span><br style="color: #1852ff;"><span style="color: #1852ff;">　　　　a = a^b； 　　//a=00000110</span><br style="color: #1852ff;"><br style="color: #1852ff;"><span style="color: #1852ff;">(3) 在汇编语言中经常用于将变量置零：</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; xor&nbsp;&nbsp; a，a</span><br style="color: #1852ff;"><br style="color: #1852ff;"><span style="color: #1852ff;">(4) 快速判断两个值是否相等</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; 举例1: 判断两个整数a，b是否相等，则可通过下列语句实现：</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((a ^ b) == 0)</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; </span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; 举例2: Linux中最初的ipv6_addr_equal()函数的实现如下:</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; static inline int ipv6_addr_equal(const struct in6_addr *a1, const struct in6_addr *a2)</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; {</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (a1-&gt;s6_addr32[0] == a2-&gt;s6_addr32[0] &amp;&amp;</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a1-&gt;s6_addr32[1] == a2-&gt;s6_addr32[1] &amp;&amp;</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a1-&gt;s6_addr32[2] == a2-&gt;s6_addr32[2] &amp;&amp;</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a1-&gt;s6_addr32[3] == a2-&gt;s6_addr32[3]);</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; }</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; </span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; 可以利用按位异或实现快速比较, 最新的实现已经修改为:</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; static inline int ipv6_addr_equal(const struct in6_addr *a1, const struct in6_addr *a2)</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; {</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; return (((a1-&gt;s6_addr32[0] ^ a2-&gt;s6_addr32[0]) |</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (a1-&gt;s6_addr32[1] ^ a2-&gt;s6_addr32[1]) |</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (a1-&gt;s6_addr32[2] ^ a2-&gt;s6_addr32[2]) |</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (a1-&gt;s6_addr32[3] ^ a2-&gt;s6_addr32[3])) == 0);</span><br style="color: #1852ff;"><span style="color: #1852ff;">&nbsp;&nbsp;&nbsp; }</span><img src ="http://www.cppblog.com/Ylemzy/aggbug/96147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-09-14 19:46 <a href="http://www.cppblog.com/Ylemzy/articles/96147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最大子段和</title><link>http://www.cppblog.com/Ylemzy/articles/95066.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Wed, 02 Sep 2009 01:07:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/95066.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/95066.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/95066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/95066.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/95066.html</trackback:ping><description><![CDATA[<span style="COLOR: #ff0000; BACKGROUND-COLOR: #ffffff">最大子段和：<br></span><span style="COLOR: #3366ff">对一个数字串T，求其某一段元素之和，使得其和是最大。</span> <span style="COLOR: #ff6600">( </span><span style="COLOR: #ff6600">注：如果所有的数字都不大于0，则规定其和为0。)</span><br><br><span style="COLOR: #ff0000">求法：</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #008080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; / if (sum[m-1] + T[m] &gt;= 0){ sum[m] = sum[m -1] + T[m]}<br>sum[m] =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \else {sum[m] = T[m]}<br></span><br><span style="COLOR: #3366ff">sum[m]是到下标为m的元素为止的最大子段和。<br><br>求出sum[m]后，线扫数组sum的最大值就是所求。</span><br><br>
<div><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>int&nbsp;sum;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>void&nbsp;MaxSum(int&nbsp;n)<br><img id=Codehighlighter1_28_175_Open_Image onclick="this.style.display='none'; Codehighlighter1_28_175_Open_Text.style.display='none'; Codehighlighter1_28_175_Closed_Image.style.display='inline'; Codehighlighter1_28_175_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_28_175_Closed_Image onclick="this.style.display='none'; Codehighlighter1_28_175_Closed_Text.style.display='none'; Codehighlighter1_28_175_Open_Image.style.display='inline'; Codehighlighter1_28_175_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,&nbsp;b&nbsp;=&nbsp;0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)<br><img id=Codehighlighter1_71_173_Open_Image onclick="this.style.display='none'; Codehighlighter1_71_173_Open_Text.style.display='none'; Codehighlighter1_71_173_Closed_Image.style.display='inline'; Codehighlighter1_71_173_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_71_173_Closed_Image onclick="this.style.display='none'; Codehighlighter1_71_173_Closed_Text.style.display='none'; Codehighlighter1_71_173_Open_Image.style.display='inline'; Codehighlighter1_71_173_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(b&nbsp;&gt;=&nbsp;0)<br><img id=Codehighlighter1_89_107_Open_Image onclick="this.style.display='none'; Codehighlighter1_89_107_Open_Text.style.display='none'; Codehighlighter1_89_107_Closed_Image.style.display='inline'; Codehighlighter1_89_107_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_89_107_Closed_Image onclick="this.style.display='none'; Codehighlighter1_89_107_Closed_Text.style.display='none'; Codehighlighter1_89_107_Open_Image.style.display='inline'; Codehighlighter1_89_107_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;+=&nbsp;T[i];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br><img id=Codehighlighter1_118_135_Open_Image onclick="this.style.display='none'; Codehighlighter1_118_135_Open_Text.style.display='none'; Codehighlighter1_118_135_Closed_Image.style.display='inline'; Codehighlighter1_118_135_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_118_135_Closed_Image onclick="this.style.display='none'; Codehighlighter1_118_135_Closed_Text.style.display='none'; Codehighlighter1_118_135_Open_Image.style.display='inline'; Codehighlighter1_118_135_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;T[i];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(sum&nbsp;&lt;&nbsp;b)<br><img id=Codehighlighter1_154_170_Open_Image onclick="this.style.display='none'; Codehighlighter1_154_170_Open_Text.style.display='none'; Codehighlighter1_154_170_Closed_Image.style.display='inline'; Codehighlighter1_154_170_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_154_170_Closed_Image onclick="this.style.display='none'; Codehighlighter1_154_170_Closed_Text.style.display='none'; Codehighlighter1_154_170_Open_Image.style.display='inline'; Codehighlighter1_154_170_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;=&nbsp;b;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></div>
<br>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/95066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-09-02 09:07 <a href="http://www.cppblog.com/Ylemzy/articles/95066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>math库函数的相关应用知识</title><link>http://www.cppblog.com/Ylemzy/articles/93979.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Thu, 20 Aug 2009 16:53:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/93979.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/93979.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/93979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/93979.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/93979.html</trackback:ping><description><![CDATA[<div id=blogDetailDiv style="FONT-SIZE: 16px"><span style="COLOR: #3366ff">double exp(x):是计算e的X次方<br>x的平方：x*x或x^2或double pow(x,y)(计算x的y方，如pow(x,2))</span><br><br><span style="COLOR: #3366ff">所以：<br><br>f(x)=x^2-1/exp(x)<br>顺便给出C中的math.h中的函数：仅供参考<br>C语言中的数学函数(maths.h) <br>&nbsp;&nbsp;<br>acos <br>double acos(x)<br>double x; <br>计算arccos(x)的值 <br>计算结果 <br>x应在-1到1范围内 <br><br>asin <br>double asin(x)<br>double x; <br>计算arcsin的值 <br>计算结果 <br>x应在-1到1范围内 <br><br>atan <br>double atan(x)<br>double x; <br>计算arctan(x)的值 <br>计算结果 <br>&nbsp;&nbsp; <br><br>atan2 <br>double atan2(x,y)<br>double x,y; <br>计算arctan(x/y)的值 <br>计算结果 <br>&nbsp;&nbsp; <br><br>cos <br>double cos(x)<br>double x; <br>计算cos(x)的值 <br>计算结果 <br>x的单位为弧度 <br><br>cosh <br>double cosh(x)<br>double x; <br>计算x的双曲余弦cosh(x)的值 <br>计算结果 <br>&nbsp;&nbsp; <br><br>exp <br>double exp(x)<br>double x; <br>求e的x次方幂 <br>计算结果 <br>&nbsp;&nbsp; <br><br>fabs <br>double fabs(x)<br>double x; <br>求 x的绝对值 <br>计算结果 <br>&nbsp;&nbsp; <br><br>floor <br>double floor(x)<br>double x; <br>求不大于x的最大整数 <br>该整数的双精度实数 <br>&nbsp;&nbsp; <br><br>fmod <br>double fmod(x,y)<br>double x,y; <br>求整除x/y的余数 <br>返回余数的双精度数 <br>&nbsp;&nbsp; <br><br>frexp <br>double frexp(val,eptr)<br>double val;<br>int *eptr ; <br>把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*(2的 n次方),存放在eptr指向的变量中. <br>返回数字部分x<br>0.5x&lt;1 <br>&nbsp;&nbsp; <br><br>log <br>double log(x)<br>double x; <br>求lnx <br>计算结果 <br>&nbsp;&nbsp; <br><br>log10 <br>double log10(x)<br>double x; <br>求以10为底x的对数 <br>计算结果 <br>&nbsp;&nbsp; <br><br>modf <br>double modf(val,iptr)<br>double val;<br>double iptr; <br>把双精度数val分解为整数部分和小数部分,把整数部分存到iptr指向的单元. <br>val的小数部分 <br>&nbsp;&nbsp; <br><br>pow <br>double pow(x,y)<br>double x,y; <br>计算x的y次幂 <br>计算结果 <br>&nbsp;&nbsp; <br><br>sin <br>double sin(x)<br>double x; <br>计算sinx的值 <br>计算结果 <br>x的单位为弧度 <br><br>sinh <br>double sinh(x)<br>double x; <br>计算x的双曲正弦函数sinh(x)的值 <br>计算结果 <br>&nbsp;&nbsp; <br><br>sqrt <br>double sqrt(x)<br>double x; <br>计算x的平方根 <br>计算结果 <br>x应大于或等于0 <br><br>tan <br>double tan(x)<br>double x; <br>计算tan(x)的值 <br>计算结果 <br>x单位为度 <br><br>tanh <br>double tanh(x)<br>double x; <br>计算x的双曲正切函数tanh(x)的值 <br>计算结果</span> <!--v:3.2--></div>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/93979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-08-21 00:53 <a href="http://www.cppblog.com/Ylemzy/articles/93979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速排序</title><link>http://www.cppblog.com/Ylemzy/articles/87465.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Fri, 12 Jun 2009 03:01:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/87465.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/87465.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/87465.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/87465.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/87465.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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;elemtype;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Part(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;low,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;high,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pivotloc);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;QuickSort(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;low,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;high);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_159_446_Open_Image onclick="this.style.display='none'; Codehighlighter1_159_446_Open_Text.style.display='none'; Codehighlighter1_159_446_Closed_Image.style.display='inline'; Codehighlighter1_159_446_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_159_446_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_159_446_Closed_Text.style.display='none'; Codehighlighter1_159_446_Open_Image.style.display='inline'; Codehighlighter1_159_446_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_159_446_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_159_446_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;m;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;elemtype&nbsp;r[</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_203_415_Open_Image onclick="this.style.display='none'; Codehighlighter1_203_415_Open_Text.style.display='none'; Codehighlighter1_203_415_Closed_Image.style.display='inline'; Codehighlighter1_203_415_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_203_415_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_203_415_Closed_Text.style.display='none'; Codehighlighter1_203_415_Open_Image.style.display='inline'; Codehighlighter1_203_415_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_203_415_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_203_415_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">m);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_252_279_Open_Image onclick="this.style.display='none'; Codehighlighter1_252_279_Open_Text.style.display='none'; Codehighlighter1_252_279_Closed_Image.style.display='inline'; Codehighlighter1_252_279_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_252_279_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_252_279_Closed_Text.style.display='none'; Codehighlighter1_252_279_Open_Image.style.display='inline'; Codehighlighter1_252_279_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_252_279_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_252_279_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">r[i]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QuickSort(r,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n排序结果-------------------------\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_384_412_Open_Image onclick="this.style.display='none'; Codehighlighter1_384_412_Open_Text.style.display='none'; Codehighlighter1_384_412_Closed_Image.style.display='inline'; Codehighlighter1_384_412_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_384_412_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_384_412_Closed_Text.style.display='none'; Codehighlighter1_384_412_Open_Image.style.display='inline'; Codehighlighter1_384_412_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_384_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_384_412_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">,&nbsp;r[i]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Part(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;low,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;high,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pivotloc)<br><img id=Codehighlighter1_506_1173_Open_Image onclick="this.style.display='none'; Codehighlighter1_506_1173_Open_Text.style.display='none'; Codehighlighter1_506_1173_Closed_Image.style.display='inline'; Codehighlighter1_506_1173_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_506_1173_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_506_1173_Closed_Text.style.display='none'; Codehighlighter1_506_1173_Open_Image.style.display='inline'; Codehighlighter1_506_1173_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_506_1173_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_506_1173_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j,&nbsp;l&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;low,&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;high;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;elemtype&nbsp;pivotkey&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[low];</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">确定比较基数&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(high&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;low)<br><img id=Codehighlighter1_595_903_Open_Image onclick="this.style.display='none'; Codehighlighter1_595_903_Open_Text.style.display='none'; Codehighlighter1_595_903_Closed_Image.style.display='inline'; Codehighlighter1_595_903_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_595_903_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_595_903_Closed_Text.style.display='none'; Codehighlighter1_595_903_Open_Image.style.display='inline'; Codehighlighter1_595_903_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_595_903_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_595_903_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(low&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;high&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;pivotkey&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;r[high])</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查找r[low]右边小于pivotkey的元素r[high]&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_676_691_Open_Image onclick="this.style.display='none'; Codehighlighter1_676_691_Open_Text.style.display='none'; Codehighlighter1_676_691_Closed_Image.style.display='inline'; Codehighlighter1_676_691_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_676_691_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_676_691_Closed_Text.style.display='none'; Codehighlighter1_676_691_Open_Image.style.display='inline'; Codehighlighter1_676_691_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_676_691_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_676_691_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;high</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(low&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;high)<br><img id=Codehighlighter1_713_748_Open_Image onclick="this.style.display='none'; Codehighlighter1_713_748_Open_Text.style.display='none'; Codehighlighter1_713_748_Closed_Image.style.display='inline'; Codehighlighter1_713_748_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_713_748_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_713_748_Closed_Text.style.display='none'; Codehighlighter1_713_748_Open_Image.style.display='inline'; Codehighlighter1_713_748_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_713_748_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_713_748_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[low]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[high];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(low&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;high&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;r[low]&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;pivotkey)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查找r[high]左边大于pivotkey的元素r[low]&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_828_842_Open_Image onclick="this.style.display='none'; Codehighlighter1_828_842_Open_Text.style.display='none'; Codehighlighter1_828_842_Closed_Image.style.display='inline'; Codehighlighter1_828_842_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_828_842_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_828_842_Closed_Text.style.display='none'; Codehighlighter1_828_842_Open_Image.style.display='inline'; Codehighlighter1_828_842_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_828_842_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_828_842_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(low&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;high)<br><img id=Codehighlighter1_864_900_Open_Image onclick="this.style.display='none'; Codehighlighter1_864_900_Open_Text.style.display='none'; Codehighlighter1_864_900_Closed_Image.style.display='inline'; Codehighlighter1_864_900_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_864_900_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_864_900_Closed_Text.style.display='none'; Codehighlighter1_864_900_Open_Image.style.display='inline'; Codehighlighter1_864_900_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_864_900_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_864_900_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[high]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[low];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;high</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r[high]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;pivotkey;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">将比较基数pivotkey赋给分界点&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pivotloc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;high;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">标记分界点&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;l;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;h;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1001_1155_Open_Image onclick="this.style.display='none'; Codehighlighter1_1001_1155_Open_Text.style.display='none'; Codehighlighter1_1001_1155_Closed_Image.style.display='inline'; Codehighlighter1_1001_1155_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1001_1155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1001_1155_Closed_Text.style.display='none'; Codehighlighter1_1001_1155_Open_Image.style.display='inline'; Codehighlighter1_1001_1155_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1001_1155_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1001_1155_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;low)<br><img id=Codehighlighter1_1021_1113_Open_Image onclick="this.style.display='none'; Codehighlighter1_1021_1113_Open_Text.style.display='none'; Codehighlighter1_1021_1113_Closed_Image.style.display='inline'; Codehighlighter1_1021_1113_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1021_1113_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1021_1113_Closed_Text.style.display='none'; Codehighlighter1_1021_1113_Open_Image.style.display='inline'; Codehighlighter1_1021_1113_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1021_1113_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1021_1113_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;%d&gt;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;r[j]);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">打印分界点的值;&nbsp;r[l]到r[low-1]的所有元素都小于分界点,&nbsp;r[low+1]到r[h]得所有元素都大于分界点&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1124_1152_Open_Image onclick="this.style.display='none'; Codehighlighter1_1124_1152_Open_Text.style.display='none'; Codehighlighter1_1124_1152_Closed_Image.style.display='inline'; Codehighlighter1_1124_1152_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1124_1152_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1124_1152_Closed_Text.style.display='none'; Codehighlighter1_1124_1152_Open_Image.style.display='inline'; Codehighlighter1_1124_1152_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1124_1152_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1124_1152_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">,&nbsp;r[j]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;QuickSort(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;low,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;high)<br><img id=Codehighlighter1_1223_1428_Open_Image onclick="this.style.display='none'; Codehighlighter1_1223_1428_Open_Text.style.display='none'; Codehighlighter1_1223_1428_Closed_Image.style.display='inline'; Codehighlighter1_1223_1428_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1223_1428_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1223_1428_Closed_Text.style.display='none'; Codehighlighter1_1223_1428_Open_Image.style.display='inline'; Codehighlighter1_1223_1428_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1223_1428_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1223_1428_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(low&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;high)<br><img id=Codehighlighter1_1254_1426_Open_Image onclick="this.style.display='none'; Codehighlighter1_1254_1426_Open_Text.style.display='none'; Codehighlighter1_1254_1426_Closed_Image.style.display='inline'; Codehighlighter1_1254_1426_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1254_1426_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1254_1426_Closed_Text.style.display='none'; Codehighlighter1_1254_1426_Open_Image.style.display='inline'; Codehighlighter1_1254_1426_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1254_1426_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1254_1426_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Part(r,&nbsp;low,&nbsp;high,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">i);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">因为Part函数，使r[low]到r[i-1]的所有元素都小于r[i],&nbsp;r[i+1]到r[high]得所有元素都大于r[i]，所以不需要在将r[i]参与排序&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QuickSort(r,&nbsp;low,&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QuickSort(r,&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;high);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1430_1463_Open_Image onclick="this.style.display='none'; Codehighlighter1_1430_1463_Open_Text.style.display='none'; Codehighlighter1_1430_1463_Closed_Image.style.display='inline'; Codehighlighter1_1430_1463_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1430_1463_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1430_1463_Closed_Text.style.display='none'; Codehighlighter1_1430_1463_Open_Image.style.display='inline'; Codehighlighter1_1430_1463_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1430_1463_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_1430_1463_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>10<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>9&nbsp;11&nbsp;4&nbsp;5&nbsp;21&nbsp;17&nbsp;15&nbsp;13&nbsp;11&nbsp;4<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/87465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-12 11:01 <a href="http://www.cppblog.com/Ylemzy/articles/87465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>累堆排序</title><link>http://www.cppblog.com/Ylemzy/articles/87458.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Fri, 12 Jun 2009 01:36:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/87458.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/87458.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/87458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/87458.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/87458.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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;elemtype;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Adjust(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;HeapSort(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_129_334_Open_Image onclick="this.style.display='none'; Codehighlighter1_129_334_Open_Text.style.display='none'; Codehighlighter1_129_334_Closed_Image.style.display='inline'; Codehighlighter1_129_334_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_129_334_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_129_334_Closed_Text.style.display='none'; Codehighlighter1_129_334_Open_Image.style.display='inline'; Codehighlighter1_129_334_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_129_334_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_129_334_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;m;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;elemtype&nbsp;r[</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_173_303_Open_Image onclick="this.style.display='none'; Codehighlighter1_173_303_Open_Text.style.display='none'; Codehighlighter1_173_303_Closed_Image.style.display='inline'; Codehighlighter1_173_303_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_173_303_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_173_303_Closed_Text.style.display='none'; Codehighlighter1_173_303_Open_Image.style.display='inline'; Codehighlighter1_173_303_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_173_303_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_173_303_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">m);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(m&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_210_224_Open_Image onclick="this.style.display='none'; Codehighlighter1_210_224_Open_Text.style.display='none'; Codehighlighter1_210_224_Closed_Image.style.display='inline'; Codehighlighter1_210_224_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_210_224_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_210_224_Closed_Text.style.display='none'; Codehighlighter1_210_224_Open_Image.style.display='inline'; Codehighlighter1_210_224_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_210_224_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_210_224_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_255_282_Open_Image onclick="this.style.display='none'; Codehighlighter1_255_282_Open_Text.style.display='none'; Codehighlighter1_255_282_Closed_Image.style.display='inline'; Codehighlighter1_255_282_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_255_282_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_255_282_Closed_Text.style.display='none'; Codehighlighter1_255_282_Open_Image.style.display='inline'; Codehighlighter1_255_282_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_255_282_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_255_282_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">r[i]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HeapSort(r,&nbsp;m);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Adjust(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里对数组进行升序排序&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_390_747_Open_Image onclick="this.style.display='none'; Codehighlighter1_390_747_Open_Text.style.display='none'; Codehighlighter1_390_747_Closed_Image.style.display='inline'; Codehighlighter1_390_747_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_390_747_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_390_747_Closed_Text.style.display='none'; Codehighlighter1_390_747_Open_Image.style.display='inline'; Codehighlighter1_390_747_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_390_747_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_390_747_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;elemtype&nbsp;tmp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[k];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;k;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">在有孩子的情况下遍历孩子。tmp是当前结点值，它保持不变&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_491_732_Open_Image onclick="this.style.display='none'; Codehighlighter1_491_732_Open_Text.style.display='none'; Codehighlighter1_491_732_Closed_Image.style.display='inline'; Codehighlighter1_491_732_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_491_732_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_491_732_Closed_Text.style.display='none'; Codehighlighter1_491_732_Open_Image.style.display='inline'; Codehighlighter1_491_732_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_491_732_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_491_732_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;r[j</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;r[j])</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">找出左右孩子中的较大者childLarger&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_568_580_Open_Image onclick="this.style.display='none'; Codehighlighter1_568_580_Open_Text.style.display='none'; Codehighlighter1_568_580_Closed_Image.style.display='inline'; Codehighlighter1_568_580_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_568_580_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_568_580_Closed_Text.style.display='none'; Codehighlighter1_568_580_Open_Image.style.display='inline'; Codehighlighter1_568_580_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_568_580_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_568_580_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(tmp&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;r[j])<br><img id=Codehighlighter1_602_684_Open_Image onclick="this.style.display='none'; Codehighlighter1_602_684_Open_Text.style.display='none'; Codehighlighter1_602_684_Closed_Image.style.display='inline'; Codehighlighter1_602_684_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_602_684_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_602_684_Closed_Text.style.display='none'; Codehighlighter1_602_684_Open_Image.style.display='inline'; Codehighlighter1_602_684_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_602_684_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_602_684_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[j];</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果结点比childLarger小，将孩子上移到结点&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;j;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">将下标移指向childLarger的位置&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_695_729_Open_Image onclick="this.style.display='none'; Codehighlighter1_695_729_Open_Text.style.display='none'; Codehighlighter1_695_729_Closed_Image.style.display='inline'; Codehighlighter1_695_729_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_695_729_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_695_729_Closed_Text.style.display='none'; Codehighlighter1_695_729_Open_Image.style.display='inline'; Codehighlighter1_695_729_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_695_729_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_695_729_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">表明i指向的结点的孩子都比tmp小&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tmp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;HeapSort(elemtype&nbsp;r[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n)<br><img id=Codehighlighter1_784_1298_Open_Image onclick="this.style.display='none'; Codehighlighter1_784_1298_Open_Text.style.display='none'; Codehighlighter1_784_1298_Closed_Image.style.display='inline'; Codehighlighter1_784_1298_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_784_1298_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_784_1298_Closed_Text.style.display='none'; Codehighlighter1_784_1298_Open_Image.style.display='inline'; Codehighlighter1_784_1298_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_784_1298_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_784_1298_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;elemtype&nbsp;tmp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">把树调整成大顶堆&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_854_876_Open_Image onclick="this.style.display='none'; Codehighlighter1_854_876_Open_Text.style.display='none'; Codehighlighter1_854_876_Closed_Image.style.display='inline'; Codehighlighter1_854_876_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_854_876_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_854_876_Closed_Text.style.display='none'; Codehighlighter1_854_876_Open_Image.style.display='inline'; Codehighlighter1_854_876_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_854_876_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_854_876_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adjust(r,&nbsp;i,&nbsp;n);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n\n大顶堆============================\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_959_985_Open_Image onclick="this.style.display='none'; Codehighlighter1_959_985_Open_Text.style.display='none'; Codehighlighter1_959_985_Closed_Image.style.display='inline'; Codehighlighter1_959_985_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_959_985_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_959_985_Closed_Text.style.display='none'; Codehighlighter1_959_985_Open_Image.style.display='inline'; Codehighlighter1_959_985_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_959_985_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_959_985_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">,&nbsp;r[j]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">);&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1066_1296_Open_Image onclick="this.style.display='none'; Codehighlighter1_1066_1296_Open_Text.style.display='none'; Codehighlighter1_1066_1296_Closed_Image.style.display='inline'; Codehighlighter1_1066_1296_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1066_1296_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1066_1296_Closed_Text.style.display='none'; Codehighlighter1_1066_1296_Open_Image.style.display='inline'; Codehighlighter1_1066_1296_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1066_1296_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1066_1296_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[i];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tmp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adjust(r,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">i&nbsp;-&nbsp;1目的是不让Adjust把i上移，因为r[i]是r[1]到r[i]中的最大值&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n-------------------------------------\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1265_1293_Open_Image onclick="this.style.display='none'; Codehighlighter1_1265_1293_Open_Text.style.display='none'; Codehighlighter1_1265_1293_Closed_Image.style.display='inline'; Codehighlighter1_1265_1293_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1265_1293_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1265_1293_Closed_Text.style.display='none'; Codehighlighter1_1265_1293_Open_Image.style.display='inline'; Codehighlighter1_1265_1293_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1265_1293_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1265_1293_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">,&nbsp;r[j]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_1301_1333_Open_Image onclick="this.style.display='none'; Codehighlighter1_1301_1333_Open_Text.style.display='none'; Codehighlighter1_1301_1333_Closed_Image.style.display='inline'; Codehighlighter1_1301_1333_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1301_1333_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1301_1333_Closed_Text.style.display='none'; Codehighlighter1_1301_1333_Open_Image.style.display='inline'; Codehighlighter1_1301_1333_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1301_1333_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_1301_1333_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>11<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>1&nbsp;3&nbsp;2&nbsp;5&nbsp;11&nbsp;7&nbsp;4&nbsp;13&nbsp;19&nbsp;6&nbsp;9<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span></div>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/87458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-12 09:36 <a href="http://www.cppblog.com/Ylemzy/articles/87458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>归并排序</title><link>http://www.cppblog.com/Ylemzy/articles/87411.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Thu, 11 Jun 2009 07:40:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/87411.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/87411.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/87411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/87411.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/87411.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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;500001</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;array[MAX],&nbsp;array1[MAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>__int64&nbsp;sum;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MergeSort(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Merge(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_163_464_Open_Image onclick="this.style.display='none'; Codehighlighter1_163_464_Open_Text.style.display='none'; Codehighlighter1_163_464_Closed_Image.style.display='inline'; Codehighlighter1_163_464_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_163_464_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_163_464_Closed_Text.style.display='none'; Codehighlighter1_163_464_Open_Image.style.display='inline'; Codehighlighter1_163_464_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_163_464_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_163_464_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,&nbsp;m,&nbsp;i,&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_198_433_Open_Image onclick="this.style.display='none'; Codehighlighter1_198_433_Open_Text.style.display='none'; Codehighlighter1_198_433_Closed_Image.style.display='inline'; Codehighlighter1_198_433_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_198_433_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_198_433_Closed_Text.style.display='none'; Codehighlighter1_198_433_Open_Image.style.display='inline'; Codehighlighter1_198_433_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_198_433_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_198_433_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">m);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(m&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_246_260_Open_Image onclick="this.style.display='none'; Codehighlighter1_246_260_Open_Text.style.display='none'; Codehighlighter1_246_260_Closed_Image.style.display='inline'; Codehighlighter1_246_260_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_246_260_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_246_260_Closed_Text.style.display='none'; Codehighlighter1_246_260_Open_Image.style.display='inline'; Codehighlighter1_246_260_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_246_260_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_246_260_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_290_321_Open_Image onclick="this.style.display='none'; Codehighlighter1_290_321_Open_Text.style.display='none'; Codehighlighter1_290_321_Closed_Image.style.display='inline'; Codehighlighter1_290_321_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_290_321_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_290_321_Closed_Text.style.display='none'; Codehighlighter1_290_321_Open_Image.style.display='inline'; Codehighlighter1_290_321_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_290_321_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_290_321_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">array[i]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">);&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_396_430_Open_Image onclick="this.style.display='none'; Codehighlighter1_396_430_Open_Text.style.display='none'; Codehighlighter1_396_430_Closed_Image.style.display='inline'; Codehighlighter1_396_430_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_396_430_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_396_430_Closed_Text.style.display='none'; Codehighlighter1_396_430_Open_Image.style.display='inline'; Codehighlighter1_396_430_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_396_430_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_396_430_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">,&nbsp;array[i]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MergeSort(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j)<br><img id=Codehighlighter1_496_730_Open_Image onclick="this.style.display='none'; Codehighlighter1_496_730_Open_Text.style.display='none'; Codehighlighter1_496_730_Closed_Image.style.display='inline'; Codehighlighter1_496_730_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_496_730_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_496_730_Closed_Text.style.display='none'; Codehighlighter1_496_730_Open_Image.style.display='inline'; Codehighlighter1_496_730_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_496_730_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_496_730_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;h;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;j)<br><img id=Codehighlighter1_519_728_Open_Image onclick="this.style.display='none'; Codehighlighter1_519_728_Open_Text.style.display='none'; Codehighlighter1_519_728_Closed_Image.style.display='inline'; Codehighlighter1_519_728_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_519_728_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_519_728_Closed_Text.style.display='none'; Codehighlighter1_519_728_Open_Image.style.display='inline'; Codehighlighter1_519_728_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_519_728_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_519_728_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_523_552_Open_Image onclick="this.style.display='none'; Codehighlighter1_523_552_Open_Text.style.display='none'; Codehighlighter1_523_552_Closed_Image.style.display='inline'; Codehighlighter1_523_552_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_523_552_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_523_552_Closed_Text.style.display='none'; Codehighlighter1_523_552_Open_Image.style.display='inline'; Codehighlighter1_523_552_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_523_552_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_523_552_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;将长度为m的输入序列分成两个长度为n/2的子序列&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;j)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">i&nbsp;=&nbsp;%d&nbsp;h&nbsp;=&nbsp;%d&nbsp;j&nbsp;=&nbsp;%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;i,&nbsp;h,&nbsp;j);<br><img id=Codehighlighter1_619_638_Open_Image onclick="this.style.display='none'; Codehighlighter1_619_638_Open_Text.style.display='none'; Codehighlighter1_619_638_Closed_Image.style.display='inline'; Codehighlighter1_619_638_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_619_638_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_619_638_Closed_Text.style.display='none'; Codehighlighter1_619_638_Open_Image.style.display='inline'; Codehighlighter1_619_638_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_619_638_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_619_638_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;对两个子序列分别进行归并排序&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(i,&nbsp;h);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeSort(h&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;j);<br><img id=Codehighlighter1_684_707_Open_Image onclick="this.style.display='none'; Codehighlighter1_684_707_Open_Text.style.display='none'; Codehighlighter1_684_707_Closed_Image.style.display='inline'; Codehighlighter1_684_707_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_684_707_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_684_707_Closed_Text.style.display='none'; Codehighlighter1_684_707_Open_Image.style.display='inline'; Codehighlighter1_684_707_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_684_707_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_684_707_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;将2个排好的子序列合并成最终有序序列&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge(i,&nbsp;h,&nbsp;j);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Merge(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;h,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j)<br><img id=Codehighlighter1_764_1278_Open_Image onclick="this.style.display='none'; Codehighlighter1_764_1278_Open_Text.style.display='none'; Codehighlighter1_764_1278_Closed_Image.style.display='inline'; Codehighlighter1_764_1278_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_764_1278_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_764_1278_Closed_Text.style.display='none'; Codehighlighter1_764_1278_Open_Image.style.display='inline'; Codehighlighter1_764_1278_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_764_1278_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_764_1278_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;y&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;x&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;<br><img id=Codehighlighter1_798_814_Open_Image onclick="this.style.display='none'; Codehighlighter1_798_814_Open_Text.style.display='none'; Codehighlighter1_798_814_Closed_Image.style.display='inline'; Codehighlighter1_798_814_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_798_814_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_798_814_Closed_Text.style.display='none'; Codehighlighter1_798_814_Open_Image.style.display='inline'; Codehighlighter1_798_814_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_798_814_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_798_814_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;2个输入区间都不为空时&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(x&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;y&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;j)<br><img id=Codehighlighter1_844_1001_Open_Image onclick="this.style.display='none'; Codehighlighter1_844_1001_Open_Text.style.display='none'; Codehighlighter1_844_1001_Closed_Image.style.display='inline'; Codehighlighter1_844_1001_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_844_1001_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_844_1001_Closed_Text.style.display='none'; Codehighlighter1_844_1001_Open_Image.style.display='inline'; Codehighlighter1_844_1001_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_844_1001_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_844_1001_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_848_868_Open_Image onclick="this.style.display='none'; Codehighlighter1_848_868_Open_Text.style.display='none'; Codehighlighter1_848_868_Closed_Image.style.display='inline'; Codehighlighter1_848_868_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_848_868_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_848_868_Closed_Text.style.display='none'; Codehighlighter1_848_868_Open_Image.style.display='inline'; Codehighlighter1_848_868_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_848_868_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_848_868_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;取关键字小的记录转移至输出区间&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(array[x]&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;array[y])<br><img id=Codehighlighter1_900_954_Open_Image onclick="this.style.display='none'; Codehighlighter1_900_954_Open_Text.style.display='none'; Codehighlighter1_900_954_Closed_Image.style.display='inline'; Codehighlighter1_900_954_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_900_954_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_900_954_Closed_Text.style.display='none'; Codehighlighter1_900_954_Open_Image.style.display='inline'; Codehighlighter1_900_954_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_900_954_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_900_954_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array1[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array[y</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;x&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_965_998_Open_Image onclick="this.style.display='none'; Codehighlighter1_965_998_Open_Text.style.display='none'; Codehighlighter1_965_998_Closed_Image.style.display='inline'; Codehighlighter1_965_998_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_965_998_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_965_998_Closed_Text.style.display='none'; Codehighlighter1_965_998_Open_Image.style.display='inline'; Codehighlighter1_965_998_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_965_998_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_965_998_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array1[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array[x</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1004_1024_Open_Image onclick="this.style.display='none'; Codehighlighter1_1004_1024_Open_Text.style.display='none'; Codehighlighter1_1004_1024_Closed_Image.style.display='inline'; Codehighlighter1_1004_1024_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1004_1024_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1004_1024_Closed_Text.style.display='none'; Codehighlighter1_1004_1024_Open_Image.style.display='inline'; Codehighlighter1_1004_1024_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1004_1024_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_1004_1024_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;将非空的输入区间转移至输出区间&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(x&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;h)<br><img id=Codehighlighter1_1043_1074_Open_Image onclick="this.style.display='none'; Codehighlighter1_1043_1074_Open_Text.style.display='none'; Codehighlighter1_1043_1074_Closed_Image.style.display='inline'; Codehighlighter1_1043_1074_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1043_1074_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1043_1074_Closed_Text.style.display='none'; Codehighlighter1_1043_1074_Open_Image.style.display='inline'; Codehighlighter1_1043_1074_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1043_1074_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1043_1074_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array1[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array[x</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(y&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;j)<br><img id=Codehighlighter1_1093_1124_Open_Image onclick="this.style.display='none'; Codehighlighter1_1093_1124_Open_Text.style.display='none'; Codehighlighter1_1093_1124_Closed_Image.style.display='inline'; Codehighlighter1_1093_1124_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1093_1124_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1093_1124_Closed_Text.style.display='none'; Codehighlighter1_1093_1124_Open_Image.style.display='inline'; Codehighlighter1_1093_1124_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1093_1124_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1093_1124_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array1[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array[y</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1128_1149_Open_Image onclick="this.style.display='none'; Codehighlighter1_1128_1149_Open_Text.style.display='none'; Codehighlighter1_1128_1149_Closed_Image.style.display='inline'; Codehighlighter1_1128_1149_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1128_1149_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1128_1149_Closed_Text.style.display='none'; Codehighlighter1_1128_1149_Open_Image.style.display='inline'; Codehighlighter1_1128_1149_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1128_1149_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_1128_1149_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;归并完成后将结果复制到原输入数组&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">);&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(x&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;x&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;k;&nbsp;x</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1198_1260_Open_Image onclick="this.style.display='none'; Codehighlighter1_1198_1260_Open_Text.style.display='none'; Codehighlighter1_1198_1260_Closed_Image.style.display='inline'; Codehighlighter1_1198_1260_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1198_1260_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1198_1260_Closed_Text.style.display='none'; Codehighlighter1_1198_1260_Open_Image.style.display='inline'; Codehighlighter1_1198_1260_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1198_1260_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1198_1260_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array[i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;x]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array1[x];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">,&nbsp;array[i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;x]);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1280_1299_Open_Image onclick="this.style.display='none'; Codehighlighter1_1280_1299_Open_Text.style.display='none'; Codehighlighter1_1280_1299_Closed_Image.style.display='inline'; Codehighlighter1_1280_1299_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1280_1299_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1280_1299_Closed_Text.style.display='none'; Codehighlighter1_1280_1299_Open_Image.style.display='inline'; Codehighlighter1_1280_1299_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1280_1299_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_1280_1299_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>6<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>1&nbsp;2&nbsp;5&nbsp;6&nbsp;3&nbsp;4<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span></div>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/87411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-11 15:40 <a href="http://www.cppblog.com/Ylemzy/articles/87411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qsort快速排序</title><link>http://www.cppblog.com/Ylemzy/articles/86987.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Sun, 07 Jun 2009 07:33:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/86987.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/86987.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/86987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/86987.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/86987.html</trackback:ping><description><![CDATA[<p>qsort包含在&lt;stdlib.h&gt;头文件中，此函数<span id=reply_content_102844294>根据你给的比较条件进行快速排序，通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。</span></p>
<p>函数原型：</p>
<p><span style="COLOR: rgb(0,0,255)">void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );</span></p>
<p>用法以及参数说明：</p>
<p>&nbsp;</p>
<p><strong>base</strong> ——要排序的数组起始地址（数组名）<br><strong>num</strong> ——数组元素个数<br><strong>size</strong> ——数组每一个元素的大小<br><strong>comparator</strong> ——函数指针，指向比较函数（比较规则）</p>
例如：<br>
<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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_15_45_Open_Image onclick="this.style.display='none'; Codehighlighter1_15_45_Open_Text.style.display='none'; Codehighlighter1_15_45_Closed_Image.style.display='inline'; Codehighlighter1_15_45_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_15_45_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_15_45_Closed_Text.style.display='none'; Codehighlighter1_15_45_Open_Image.style.display='inline'; Codehighlighter1_15_45_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_15_45_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_15_45_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;p1[</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;p2[</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">T;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>T&nbsp;str[size];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;q_cmp(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">b)<br><img id=Codehighlighter1_103_147_Open_Image onclick="this.style.display='none'; Codehighlighter1_103_147_Open_Text.style.display='none'; Codehighlighter1_103_147_Closed_Image.style.display='inline'; Codehighlighter1_103_147_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_103_147_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_103_147_Closed_Text.style.display='none'; Codehighlighter1_103_147_Open_Image.style.display='inline'; Codehighlighter1_103_147_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_103_147_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_103_147_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;strcmp(((T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)a)</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">p2,&nbsp;((T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)b)</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">p2);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>qsort(str,&nbsp;i,&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(T),&nbsp;q_cmp);</span></div>
<br>
<p>一、对int类型数组排序<br><span style="COLOR: rgb(0,0,255)"><br>int num[100];</span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp ( const void *a , const void *b )<br>{<br>return *(int *)a - *(int *)b;//*(int *)a表示a所指向的地址的内容<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(num,100,sizeof(num[0]),cmp);</span></p>
<p>二、对char类型数组排序（同int类型）</p>
<p><span style="COLOR: rgb(0,0,255)">char word[100];</span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp( const void *a , const void *b )<br>{<br>return *(char *)a - *(int *)b;<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(word,100,sizeof(word[0]),cmp);</span></p>
<p>三、对double类型数组排序<br><span style="COLOR: rgb(0,0,255)"><br>double in[100];</span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp( const void *a , const void *b )<br>{<br>return *(double *)a &gt; *(double *)b ? 1 : -1;//双精度或高精度的最好用比较符号比较大小，避免精度误差的错误</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(in,100,sizeof(in[0]),cmp);</span></p>
<p>四、对结构体一级排序</p>
<p><span style="COLOR: rgb(0,0,255)">struct Sample<br>{<br>double data;<br>int other;<br>}s[100]</span></p>
<p><span style="COLOR: rgb(153,204,0)">//按照data的值从小到大将结构体排序</span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp( const void *a ,const void *b)<br>{<br>return (*(Sample *)a).data &gt; (*(Sample *)b).data ? 1 : -1;<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(s,100,sizeof(s[0]),cmp);</span></p>
<p>五、对结构体二级排序</p>
<p><span style="COLOR: rgb(0,0,255)">struct Sample<br>{<br>int x;<br>int y;<br>}s[100];<br><span style="COLOR: rgb(153,204,0)"><br>//按照x从小到大排序，当x相等时按照y从大到小排序</span></span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp( const void *a , const void *b )<br>{<br>struct Sample *c = (Sample *)a;<br>struct Sample *d = (Sample *)b;<br>if(c-&gt;x != d-&gt;x) return c-&gt;x - d-&gt;x;<br>else return d-&gt;y - c-&gt;y;<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(s,100,sizeof(s[0]),cmp);</span></p>
<p>六、对字符串进行排序</p>
<p><span style="COLOR: rgb(0,0,255)">struct Sample<br>{<br>int data;<br>char str[100];<br>}s[100];<br><span style="COLOR: rgb(153,204,0)"><br>//按照结构体中字符串str的字典顺序排序</span></span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp ( const void *a , const void *b )<br>{<br>return strcmp( (*(Sample *)a)-&gt;str , (*(Sample *)b)-&gt;str );<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">qsort(s,100,sizeof(s[0]),cmp);</span></p>
<p><span style="COLOR: rgb(0,0,0)">附加一个完整点的代码，对字符串二维数组排序：</span></p>
<p><span style="COLOR: rgb(0,0,255)">#include &lt;stdio.h&gt;<br>#include &lt;stdlib.h&gt;<br>#include &lt;string.h&gt;</span></p>
<p><span style="COLOR: rgb(0,0,255)">char s[2001][1001];</span></p>
<p><span style="COLOR: rgb(0,0,255)">int cmp(const void *a, const void *b){<br>&nbsp;&nbsp;&nbsp; return strcmp((char *)a,(char *)b);<br>}</span></p>
<p><span style="COLOR: rgb(0,0,255)">int main(){<br>&nbsp;&nbsp;&nbsp; int i,n;<br>&nbsp;&nbsp;&nbsp; scanf("%d",&amp;n);<br>&nbsp;&nbsp;&nbsp; getchar();<br>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;n;i++) gets(s[i]);<br>&nbsp;&nbsp;&nbsp; qsort(s,n,1001*sizeof(char),cmp);<br>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;n;i++) puts(s[i]);<br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><br><a title=Slyar href="http://www.slyar.com/"><a href="http://www.slyar.com/" target=_blank>引用于slyar<br></a></a></span></p>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/86987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-07 15:33 <a href="http://www.cppblog.com/Ylemzy/articles/86987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bsearch二分查找</title><link>http://www.cppblog.com/Ylemzy/articles/86986.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Sun, 07 Jun 2009 07:15:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/86986.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/86986.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/86986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/86986.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/86986.html</trackback:ping><description><![CDATA[<span style="COLOR: #3366ff">C语言中 bsearch 包含在&lt;stdlib.h&gt;头文件中，此函数可以根据你给的条件实现二分查找，如果找到元素则返回指向该元素的指针，否则返回NULL；对于有多个元素匹配成功的情况，bsearch()未定义返回哪一个。使用 bsearch 函数也要自己定义比较子函数。</span><br><br>
<div class=wp_syntax>
<div class=code>
<pre class=c style="FONT-FAMILY: Verdana,Courier New"><span style="COLOR: rgb(153,51,51)">void</span> <span style="COLOR: rgb(51,153,51)">*</span>bsearch<span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(153,51,51)">const</span> <span style="COLOR: rgb(153,51,51)">void</span> <span style="COLOR: rgb(51,153,51)">*</span>key<span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(153,51,51)">const</span> <span style="COLOR: rgb(153,51,51)">void</span> <span style="COLOR: rgb(51,153,51)">*</span>base<span style="COLOR: rgb(51,153,51)">,</span> size_t num<span style="COLOR: rgb(51,153,51)">,</span> size_t size<span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(153,51,51)">int</span> <span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(51,153,51)">*</span>cmp<span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(153,51,51)">const</span> <span style="COLOR: rgb(153,51,51)">void</span> <span style="COLOR: rgb(51,153,51)">*,</span> <span style="COLOR: rgb(153,51,51)">const</span> <span style="COLOR: rgb(153,51,51)">void</span> <span style="COLOR: rgb(51,153,51)">*</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span></pre>
</div>
</div>
<p><strong>key——</strong> 指向要查找的元素</p>
<p><strong>base——</strong> 指向进行查找的数组</p>
<p><strong>num</strong> ——数组中元素的个数</p>
<p><strong>size——</strong> 数组中每个元素的大小，一般用sizeof( T )表示，T一般是数组的元素类型</p>
<p><strong>cmp</strong> ——比较两个元素的函数，定义比较规则。需要注意的是，查找数组必须是经过预先排序的，而排序的规则要和比较子函数cmp的规则相同。<br></p>
<br>比如：<br>
<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.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_15_45_Open_Image onclick="this.style.display='none'; Codehighlighter1_15_45_Open_Text.style.display='none'; Codehighlighter1_15_45_Closed_Image.style.display='inline'; Codehighlighter1_15_45_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_15_45_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_15_45_Closed_Text.style.display='none'; Codehighlighter1_15_45_Open_Image.style.display='inline'; Codehighlighter1_15_45_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_15_45_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_15_45_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;p1[</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;p2[</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">T;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>T&nbsp;str[size];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b_cmp(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;b)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义(b_cmp)可以随便改</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_118_159_Open_Image onclick="this.style.display='none'; Codehighlighter1_118_159_Open_Text.style.display='none'; Codehighlighter1_118_159_Closed_Image.style.display='inline'; Codehighlighter1_118_159_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_118_159_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_118_159_Closed_Text.style.display='none'; Codehighlighter1_118_159_Open_Image.style.display='inline'; Codehighlighter1_118_159_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_118_159_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_118_159_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;strcmp((</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)a,&nbsp;((T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)b)</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">p2);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;s[</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>T&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">ptr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)bsearch(s,&nbsp;str,&nbsp;i,&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(T),&nbsp;b_cmp);</span></div>
<span style="COLOR: #3366ff">s是要查找的对象，而str是供查找的数组</span><br><br><a style="FONT-SIZE: 14pt; COLOR: red" href="http://www.slyar.com/" target=_blank>引用于slyar</a> 
<img src ="http://www.cppblog.com/Ylemzy/aggbug/86986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-07 15:15 <a href="http://www.cppblog.com/Ylemzy/articles/86986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>邻接表（实验）</title><link>http://www.cppblog.com/Ylemzy/articles/86882.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Fri, 05 Jun 2009 16:04:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/86882.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/86882.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/86882.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/86882.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/86882.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 测试样例请输入图顶点个数!6请输入连通的两个点，以输入0 0结束!1 21 32 45 66 34 30 0你输入的图为:0 1 1 0 0 01 0 0 1 0 01 0 0 1 0 10 1 1 0 0 00 0 0 0 0 10 0 1 0 1 0请输入你的操作类型：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 退出 0&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/Ylemzy/articles/86882.html'>阅读全文</a><img src ="http://www.cppblog.com/Ylemzy/aggbug/86882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-06-06 00:04 <a href="http://www.cppblog.com/Ylemzy/articles/86882.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二叉树的SPF问题</title><link>http://www.cppblog.com/Ylemzy/articles/85581.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Sun, 24 May 2009 04:06:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/85581.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/85581.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/85581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/85581.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/85581.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;问题描述:设计一个算法，计算出给定二叉树中任意2 个结点之间的最短路径。&nbsp;编程任务:对于给定的二叉树，和二叉树中结点对，编程计算结点对之间的最短路径。&nbsp;数据输入:第1行有1个正整数n，表示给定的二叉树有n个顶点，编号为1，2，&#8230;，n。接下来的n行中，每行有3个正整数a,b,c，分别表示编号为a的结点的左儿子结点编号为b...&nbsp;&nbsp;<a href='http://www.cppblog.com/Ylemzy/articles/85581.html'>阅读全文</a><img src ="http://www.cppblog.com/Ylemzy/aggbug/85581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-05-24 12:06 <a href="http://www.cppblog.com/Ylemzy/articles/85581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>哈夫曼树相关实现</title><link>http://www.cppblog.com/Ylemzy/articles/83623.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Thu, 21 May 2009 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/83623.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/83623.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/83623.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/83623.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/83623.html</trackback:ping><description><![CDATA[<font face=#ce_temp_font#>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 12pt; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; COLOR: blue; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;10</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;m&nbsp;n&nbsp;*&nbsp;2&nbsp;-&nbsp;1</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_66_110_Open_Image onclick="this.style.display='none'; Codehighlighter1_66_110_Open_Text.style.display='none'; Codehighlighter1_66_110_Closed_Image.style.display='inline'; Codehighlighter1_66_110_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_66_110_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_66_110_Closed_Text.style.display='none'; Codehighlighter1_66_110_Open_Image.style.display='inline'; Codehighlighter1_66_110_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_66_110_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_66_110_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;weight;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;lchild,&nbsp;rchild,&nbsp;parent;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">HTNode;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;HTNode&nbsp;HuffmanTree[m];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>HuffmanTree&nbsp;t;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;IniHuffumanTree(HuffmanTree&nbsp;t)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">初始化每个元素&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_212_320_Open_Image onclick="this.style.display='none'; Codehighlighter1_212_320_Open_Text.style.display='none'; Codehighlighter1_212_320_Closed_Image.style.display='inline'; Codehighlighter1_212_320_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_212_320_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_212_320_Closed_Text.style.display='none'; Codehighlighter1_212_320_Open_Image.style.display='inline'; Codehighlighter1_212_320_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_212_320_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_212_320_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_248_318_Open_Image onclick="this.style.display='none'; Codehighlighter1_248_318_Open_Text.style.display='none'; Codehighlighter1_248_318_Closed_Image.style.display='inline'; Codehighlighter1_248_318_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_248_318_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_248_318_Closed_Text.style.display='none'; Codehighlighter1_248_318_Open_Image.style.display='inline'; Codehighlighter1_248_318_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_248_318_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_248_318_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i].weight&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i].lchild&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[i].rchild&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[i].parent&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;InputWeight(HuffmanTree&nbsp;t)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">输入每个结点（树）的权值&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_370_440_Open_Image onclick="this.style.display='none'; Codehighlighter1_370_440_Open_Text.style.display='none'; Codehighlighter1_370_440_Closed_Image.style.display='inline'; Codehighlighter1_370_440_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_370_440_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_370_440_Closed_Text.style.display='none'; Codehighlighter1_370_440_Open_Image.style.display='inline'; Codehighlighter1_370_440_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_370_440_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_370_440_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_406_438_Open_Image onclick="this.style.display='none'; Codehighlighter1_406_438_Open_Text.style.display='none'; Codehighlighter1_406_438_Closed_Image.style.display='inline'; Codehighlighter1_406_438_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_406_438_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_406_438_Closed_Text.style.display='none'; Codehighlighter1_406_438_Open_Image.style.display='inline'; Codehighlighter1_406_438_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_406_438_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_406_438_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t[i].weight);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;SelectMin(HuffmanTree&nbsp;t,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p1,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p2)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">在森林中找出两个权最小的树&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_513_937_Open_Image onclick="this.style.display='none'; Codehighlighter1_513_937_Open_Text.style.display='none'; Codehighlighter1_513_937_Closed_Image.style.display='inline'; Codehighlighter1_513_937_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_513_937_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_513_937_Closed_Text.style.display='none'; Codehighlighter1_513_937_Open_Image.style.display='inline'; Codehighlighter1_513_937_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_513_937_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_513_937_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;min1,&nbsp;min2;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;min1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;min2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;i;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_586_935_Open_Image onclick="this.style.display='none'; Codehighlighter1_586_935_Open_Text.style.display='none'; Codehighlighter1_586_935_Closed_Image.style.display='inline'; Codehighlighter1_586_935_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_586_935_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_586_935_Closed_Text.style.display='none'; Codehighlighter1_586_935_Open_Image.style.display='inline'; Codehighlighter1_586_935_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_586_935_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_586_935_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(t[j].parent&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">表示无双亲的结点&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_626_932_Open_Image onclick="this.style.display='none'; Codehighlighter1_626_932_Open_Text.style.display='none'; Codehighlighter1_626_932_Closed_Image.style.display='inline'; Codehighlighter1_626_932_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_626_932_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_626_932_Closed_Text.style.display='none'; Codehighlighter1_626_932_Open_Image.style.display='inline'; Codehighlighter1_626_932_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_626_932_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_626_932_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(t[j].weight&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;min1&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;min1&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_672_834_Open_Image onclick="this.style.display='none'; Codehighlighter1_672_834_Open_Text.style.display='none'; Codehighlighter1_672_834_Closed_Image.style.display='inline'; Codehighlighter1_672_834_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_672_834_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_672_834_Closed_Text.style.display='none'; Codehighlighter1_672_834_Open_Image.style.display='inline'; Codehighlighter1_672_834_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_672_834_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_672_834_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(min1&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">因为t[j].weight&nbsp;&lt;&nbsp;min1，又min2&nbsp;&gt;&nbsp;min1，故将min1的相关数据赋给min2&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_752_792_Open_Image onclick="this.style.display='none'; Codehighlighter1_752_792_Open_Text.style.display='none'; Codehighlighter1_752_792_Closed_Image.style.display='inline'; Codehighlighter1_752_792_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_752_792_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_752_792_Closed_Text.style.display='none'; Codehighlighter1_752_792_Open_Image.style.display='inline'; Codehighlighter1_752_792_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_752_792_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_752_792_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;min1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[j].weight;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">&nbsp;(t[j].weight&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;min2&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;min2&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;<br><img id=Codehighlighter1_886_928_Open_Image onclick="this.style.display='none'; Codehighlighter1_886_928_Open_Text.style.display='none'; Codehighlighter1_886_928_Closed_Image.style.display='inline'; Codehighlighter1_886_928_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_886_928_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_886_928_Closed_Text.style.display='none'; Codehighlighter1_886_928_Open_Image.style.display='inline'; Codehighlighter1_886_928_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_886_928_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_886_928_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[j].weight;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CreateHuffmanTree(HuffmanTree&nbsp;t)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建哈夫曼树&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_986_1226_Open_Image onclick="this.style.display='none'; Codehighlighter1_986_1226_Open_Text.style.display='none'; Codehighlighter1_986_1226_Closed_Image.style.display='inline'; Codehighlighter1_986_1226_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_986_1226_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_986_1226_Closed_Text.style.display='none'; Codehighlighter1_986_1226_Open_Image.style.display='inline'; Codehighlighter1_986_1226_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_986_1226_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_986_1226_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;p1,&nbsp;p2;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;IniHuffumanTree(t);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;InputWeight(t);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1068_1224_Open_Image onclick="this.style.display='none'; Codehighlighter1_1068_1224_Open_Text.style.display='none'; Codehighlighter1_1068_1224_Closed_Image.style.display='inline'; Codehighlighter1_1068_1224_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1068_1224_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1068_1224_Closed_Text.style.display='none'; Codehighlighter1_1068_1224_Open_Image.style.display='inline'; Codehighlighter1_1068_1224_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1068_1224_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1068_1224_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectMin(t,&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">p1,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">p2);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[p1].parent&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[p2].parent&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i].lchild&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i].rchild&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p2;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i].weight&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[p1].weight&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;t[p2].weight;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Preorder(HuffmanTree&nbsp;t,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对哈夫曼树的前序遍历&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_1277_1556_Open_Image onclick="this.style.display='none'; Codehighlighter1_1277_1556_Open_Text.style.display='none'; Codehighlighter1_1277_1556_Closed_Image.style.display='inline'; Codehighlighter1_1277_1556_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1277_1556_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1277_1556_Closed_Text.style.display='none'; Codehighlighter1_1277_1556_Open_Image.style.display='inline'; Codehighlighter1_1277_1556_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1277_1556_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1277_1556_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;h,&nbsp;stack[</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;stack[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(h&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1345_1554_Open_Image onclick="this.style.display='none'; Codehighlighter1_1345_1554_Open_Text.style.display='none'; Codehighlighter1_1345_1554_Closed_Image.style.display='inline'; Codehighlighter1_1345_1554_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1345_1554_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1345_1554_Closed_Text.style.display='none'; Codehighlighter1_1345_1554_Open_Image.style.display='inline'; Codehighlighter1_1345_1554_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1345_1554_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1345_1554_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;stack[i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">,&nbsp;t[h].weight);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(t[h].rchild&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1422_1455_Open_Image onclick="this.style.display='none'; Codehighlighter1_1422_1455_Open_Text.style.display='none'; Codehighlighter1_1422_1455_Closed_Image.style.display='inline'; Codehighlighter1_1422_1455_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1422_1455_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1422_1455_Closed_Text.style.display='none'; Codehighlighter1_1422_1455_Open_Image.style.display='inline'; Codehighlighter1_1422_1455_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1422_1455_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1422_1455_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[h].rchild;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(t[h].lchild&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1484_1517_Open_Image onclick="this.style.display='none'; Codehighlighter1_1484_1517_Open_Text.style.display='none'; Codehighlighter1_1484_1517_Closed_Image.style.display='inline'; Codehighlighter1_1484_1517_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1484_1517_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1484_1517_Closed_Text.style.display='none'; Codehighlighter1_1484_1517_Open_Image.style.display='inline'; Codehighlighter1_1484_1517_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1484_1517_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1484_1517_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t[h].lchild;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1536_1551_Open_Image onclick="this.style.display='none'; Codehighlighter1_1536_1551_Open_Text.style.display='none'; Codehighlighter1_1536_1551_Closed_Image.style.display='inline'; Codehighlighter1_1536_1551_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1536_1551_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1536_1551_Closed_Text.style.display='none'; Codehighlighter1_1536_1551_Open_Image.style.display='inline'; Codehighlighter1_1536_1551_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1536_1551_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1536_1551_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_1571_1731_Open_Image onclick="this.style.display='none'; Codehighlighter1_1571_1731_Open_Text.style.display='none'; Codehighlighter1_1571_1731_Closed_Image.style.display='inline'; Codehighlighter1_1571_1731_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1571_1731_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1571_1731_Closed_Text.style.display='none'; Codehighlighter1_1571_1731_Open_Image.style.display='inline'; Codehighlighter1_1571_1731_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1571_1731_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1571_1731_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CreateHuffmanTree(t);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1630_1663_Open_Image onclick="this.style.display='none'; Codehighlighter1_1630_1663_Open_Text.style.display='none'; Codehighlighter1_1630_1663_Closed_Image.style.display='inline'; Codehighlighter1_1630_1663_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1630_1663_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1630_1663_Closed_Text.style.display='none'; Codehighlighter1_1630_1663_Open_Image.style.display='inline'; Codehighlighter1_1630_1663_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1630_1663_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.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1630_1663_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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">,&nbsp;t[i].weight);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Preorder(t,&nbsp;m&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_1735_1770_Open_Image onclick="this.style.display='none'; Codehighlighter1_1735_1770_Open_Text.style.display='none'; Codehighlighter1_1735_1770_Closed_Image.style.display='inline'; Codehighlighter1_1735_1770_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1735_1770_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1735_1770_Closed_Text.style.display='none'; Codehighlighter1_1735_1770_Open_Image.style.display='inline'; Codehighlighter1_1735_1770_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1735_1770_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_1735_1770_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">测试数据&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
</span></font>
<img src ="http://www.cppblog.com/Ylemzy/aggbug/83623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-05-21 23:23 <a href="http://www.cppblog.com/Ylemzy/articles/83623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二叉树相关实现</title><link>http://www.cppblog.com/Ylemzy/articles/83615.html</link><dc:creator>火碳黑</dc:creator><author>火碳黑</author><pubDate>Thu, 21 May 2009 15:04:00 GMT</pubDate><guid>http://www.cppblog.com/Ylemzy/articles/83615.html</guid><wfw:comment>http://www.cppblog.com/Ylemzy/comments/83615.html</wfw:comment><comments>http://www.cppblog.com/Ylemzy/articles/83615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Ylemzy/comments/commentRss/83615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Ylemzy/services/trackbacks/83615.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;#include&lt;stdio.h&gt;&nbsp;#include&lt;stdlib.h&gt;&nbsp;#define&nbsp;MAXSIZE&nbsp;100&nbsp;typedef&nbsp;int&nbsp;DATATYPE;&nbsp;int&nbsp;n,&nbsp;countLevel&nbsp;=&nbsp;0;&nbsp;typedef&nbsp;...&nbsp;&nbsp;<a href='http://www.cppblog.com/Ylemzy/articles/83615.html'>阅读全文</a><img src ="http://www.cppblog.com/Ylemzy/aggbug/83615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Ylemzy/" target="_blank">火碳黑</a> 2009-05-21 23:04 <a href="http://www.cppblog.com/Ylemzy/articles/83615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>