<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:media="http://search.yahoo.com/mrss/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>堆排序 - 四号程序员</title>
	<atom:link href="https://www.coder4.com/archives/tag/%E5%A0%86%E6%8E%92%E5%BA%8F/feed" rel="self" type="application/rss+xml" />
	<link>https://www.coder4.com</link>
	<description>Keep It Simple and Stupid</description>
	<lastBuildDate>Sun, 16 Oct 2011 15:50:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>算法技术手册 - 排序 - 堆排序</title>
		<link>https://www.coder4.com/archives/2182</link>
					<comments>https://www.coder4.com/archives/2182#respond</comments>
		
		<dc:creator><![CDATA[coder4]]></dc:creator>
		<pubDate>Tue, 20 Sep 2011 05:51:01 +0000</pubDate>
				<category><![CDATA[C && C++]]></category>
		<category><![CDATA[算法&数据结构]]></category>
		<category><![CDATA[堆排序]]></category>
		<category><![CDATA[排序]]></category>
		<category><![CDATA[算法技术手册]]></category>
		<guid isPermaLink="false">http://www.coder4.com/?p=2182</guid>

					<description><![CDATA[堆排序依赖于上午写道的构建堆和调整堆。 基本思想： (1)首先执行BuildHeap（以最大堆为例），则arr[0]已经是最大元素了，如果我们要按照从小到大排序，那么它应该被放在arr[n-1]上，于是，我们swap arr[0]和arr[n-1]。 (2)类似的，我们让i从n-1到0，依次执行调整堆，AdjustHeap(i,n)，每次调整完成后，堆顶部一定是最大元素，正好把他换到i-2上。 上述的思路和选择排序是不是非常相似！ 改进： 调整堆实际用到了递归方法，而其实它是[......] 继续阅读]]></description>
		
					<wfw:commentRss>https://www.coder4.com/archives/2182/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>算法技术手册 - 排序 - 堆排序 - 调整堆和构造堆</title>
		<link>https://www.coder4.com/archives/2178</link>
					<comments>https://www.coder4.com/archives/2178#respond</comments>
		
		<dc:creator><![CDATA[coder4]]></dc:creator>
		<pubDate>Tue, 20 Sep 2011 02:36:59 +0000</pubDate>
				<category><![CDATA[C && C++]]></category>
		<category><![CDATA[算法&数据结构]]></category>
		<category><![CDATA[堆排序]]></category>
		<category><![CDATA[构造堆]]></category>
		<category><![CDATA[算法技术手册]]></category>
		<category><![CDATA[调整堆]]></category>
		<guid isPermaLink="false">http://www.coder4.com/?p=2178</guid>

					<description><![CDATA[堆的下标相关： 对于大小为n的堆(0~n-1)中的一个元素idx (1)左孩子：idx*2 + 1 (2)右孩子：idx*2 + 2 (3)父亲结点：(idx-1)/2 (4)最大（右下）的非叶子结点：n/2-1 特别注意(4)区别于(3)，为什么呢？最后一个结点为n-1，那么它的父亲结点肯定是最后一个非叶子结点。即(n-1-1)/2 = n/2 - 1，都是下标搞的麻烦是吧！ 目的：通过n/2-1次调整堆，可以构造一个堆。 调整堆(i,max)：将i及之后（右、下）[......] 继续阅读]]></description>
		
					<wfw:commentRss>https://www.coder4.com/archives/2178/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
