<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Quicksort killer</title>
	<atom:link href="http://igoro.com/archive/quicksort-killer/feed/" rel="self" type="application/rss+xml" />
	<link>http://igoro.com/archive/quicksort-killer/</link>
	<description>On programming, technology, and random things of interest</description>
	<lastBuildDate>Thu, 29 Jul 2010 00:28:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: How to write a self-printing program &#124; Igor Ostrovsky Blogging</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-566</link>
		<dc:creator>How to write a self-printing program &#124; Igor Ostrovsky Blogging</dc:creator>
		<pubDate>Wed, 09 Sep 2009 07:29:27 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-566</guid>
		<description>[...] Quicksort killer [...]</description>
		<content:encoded><![CDATA[<p>[...] Quicksort killer [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Skip lists are fascinating! &#124; Igor Ostrovsky Blogging</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-560</link>
		<dc:creator>Skip lists are fascinating! &#124; Igor Ostrovsky Blogging</dc:creator>
		<pubDate>Wed, 09 Sep 2009 07:09:57 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-560</guid>
		<description>[...] Quicksort killer [igoro.com] [...]</description>
		<content:encoded><![CDATA[<p>[...] Quicksort killer [igoro.com] [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Efficient auto-complete with a ternary search tree &#124; Igor Ostrovsky Blogging</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-544</link>
		<dc:creator>Efficient auto-complete with a ternary search tree &#124; Igor Ostrovsky Blogging</dc:creator>
		<pubDate>Tue, 01 Sep 2009 09:25:57 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-544</guid>
		<description>[...] Quicksort killer [...]</description>
		<content:encoded><![CDATA[<p>[...] Quicksort killer [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: flux</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-447</link>
		<dc:creator>flux</dc:creator>
		<pubDate>Tue, 03 Feb 2009 21:24:17 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-447</guid>
		<description>Introsort?

www.en.wikipedia.org/wiki/Introsort</description>
		<content:encoded><![CDATA[<p>Introsort?</p>
<p><a href="http://www.en.wikipedia.org/wiki/Introsort" rel="nofollow">http://www.en.wikipedia.org/wiki/Introsort</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Greneir</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-252</link>
		<dc:creator>Alex Greneir</dc:creator>
		<pubDate>Mon, 12 May 2008 14:39:34 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-252</guid>
		<description>Radix sort for the win!</description>
		<content:encoded><![CDATA[<p>Radix sort for the win!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: igoro</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-251</link>
		<dc:creator>igoro</dc:creator>
		<pubDate>Sat, 10 May 2008 16:47:33 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-251</guid>
		<description>Paco: of course I&#039;ve heard of merge sort. :-) Merge sort guarantees O(N log N) running time, but a typical implementation also requires O(N) additional memory. There are some implementations that do in-place merging and thus only require O(1) extra memory, while still guaranteeing O(N log N) running time. Unfortunately, the constant-memory implementations have a large constant, and also are rather complicated.</description>
		<content:encoded><![CDATA[<p>Paco: of course I&#8217;ve heard of merge sort. <img src='http://igoro.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Merge sort guarantees O(N log N) running time, but a typical implementation also requires O(N) additional memory. There are some implementations that do in-place merging and thus only require O(1) extra memory, while still guaranteeing O(N log N) running time. Unfortunately, the constant-memory implementations have a large constant, and also are rather complicated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-250</link>
		<dc:creator>David</dc:creator>
		<pubDate>Sat, 10 May 2008 14:24:23 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-250</guid>
		<description>If you require GUARANTEED performance, i.e. that performance will not exceed an upper bound, heapsort is what you want.

Quicksort is great and all, but its inconsistency can be a killer where good performance is required, but bad performance is unacceptable.

And, on the upside, since heapsort requires no non-deterministic internal branching, in machine code compiled applications with a good optimising compiler you can be guaranteed that your pipelines stay saturated and that you get on average better performance than quicksort.  The only real downside is that it has very bad cache locality.

The last few points aren&#039;t really applicable to C#, but interesting to note, nonetheless.</description>
		<content:encoded><![CDATA[<p>If you require GUARANTEED performance, i.e. that performance will not exceed an upper bound, heapsort is what you want.</p>
<p>Quicksort is great and all, but its inconsistency can be a killer where good performance is required, but bad performance is unacceptable.</p>
<p>And, on the upside, since heapsort requires no non-deterministic internal branching, in machine code compiled applications with a good optimising compiler you can be guaranteed that your pipelines stay saturated and that you get on average better performance than quicksort.  The only real downside is that it has very bad cache locality.</p>
<p>The last few points aren&#8217;t really applicable to C#, but interesting to note, nonetheless.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paco</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-249</link>
		<dc:creator>Paco</dc:creator>
		<pubDate>Sat, 10 May 2008 10:23:37 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-249</guid>
		<description>Ever heard of merge sort?</description>
		<content:encoded><![CDATA[<p>Ever heard of merge sort?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kutay</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-248</link>
		<dc:creator>kutay</dc:creator>
		<pubDate>Sat, 10 May 2008 09:59:32 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-248</guid>
		<description>:) cool</description>
		<content:encoded><![CDATA[<p> <img src='http://igoro.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  cool</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DotNetKicks.com</title>
		<link>http://igoro.com/archive/quicksort-killer/comment-page-1/#comment-247</link>
		<dc:creator>DotNetKicks.com</dc:creator>
		<pubDate>Fri, 09 May 2008 08:04:16 +0000</pubDate>
		<guid isPermaLink="false">http://igoro.com/?p=33#comment-247</guid>
		<description>&lt;strong&gt;How to break quicksort...&lt;/strong&gt;

You&#039;ve been kicked (a good thing) - Trackback from DotNetKicks.com...</description>
		<content:encoded><![CDATA[<p><strong>How to break quicksort&#8230;</strong></p>
<p>You&#8217;ve been kicked (a good thing) &#8211; Trackback from DotNetKicks.com&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
