<?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: Algorithm cheatsheet: Quicksort</title>
	<atom:link href="/2012/03/12/algorithm-cheatsheet-quicksort/feed/" rel="self" type="application/rss+xml" />
	<link>/2012/03/12/algorithm-cheatsheet-quicksort/</link>
	<description>on web development</description>
	<lastBuildDate>Fri, 26 Oct 2018 21:40:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.0.3</generator>
	<item>
		<title>By: Federico Lebron</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15274</link>
		<dc:creator><![CDATA[Federico Lebron]]></dc:creator>
		<pubDate>Wed, 14 Mar 2012 16:14:52 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15274</guid>
		<description><![CDATA[@Marvon: It is a relatively easy to prove fact that no comparison sorting algorithm can do better than Omega(n log n) comparisons (specifically, strictly better than ceil(log_2(n!))) in the worst case. If you assume things about the data, better bounds are possible. Comparing algorithms that assume different things is a tricky business.]]></description>
		<content:encoded><![CDATA[<p>@Marvon: It is a relatively easy to prove fact that no comparison sorting algorithm can do better than Omega(n log n) comparisons (specifically, strictly better than ceil(log_2(n!))) in the worst case. If you assume things about the data, better bounds are possible. Comparing algorithms that assume different things is a tricky business.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stoimen</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15271</link>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
		<pubDate>Wed, 14 Mar 2012 12:53:52 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15271</guid>
		<description><![CDATA[@Marvon - it will be great if you post an article link that explains PS9110 in detail.]]></description>
		<content:encoded><![CDATA[<p>@Marvon &#8211; it will be great if you post an article link that explains PS9110 in detail.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marvon Newby</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15270</link>
		<dc:creator><![CDATA[Marvon Newby]]></dc:creator>
		<pubDate>Wed, 14 Mar 2012 12:48:36 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15270</guid>
		<description><![CDATA[I noticed that no one has compared these sorts to the PS9110 sort.
The above sorts are basically O(N log N) sorts.
The PS9110 sort is an O(N) sort.

The second advantage is that the above sorts use a binary search.
Binary searches are O(log N) searches.
The PS9110 search is an O(1) search.

Links have the problem of the resources needed to create and destroy the links that keep the data set in sorted order.

Arrays have the problem of N/2 moves to add or delete an element from a sorted data set. {O(N) time}

The PS9110 altorithms can insert and delete data from an array in O(1) time.]]></description>
		<content:encoded><![CDATA[<p>I noticed that no one has compared these sorts to the PS9110 sort.<br />
The above sorts are basically O(N log N) sorts.<br />
The PS9110 sort is an O(N) sort.</p>
<p>The second advantage is that the above sorts use a binary search.<br />
Binary searches are O(log N) searches.<br />
The PS9110 search is an O(1) search.</p>
<p>Links have the problem of the resources needed to create and destroy the links that keep the data set in sorted order.</p>
<p>Arrays have the problem of N/2 moves to add or delete an element from a sorted data set. {O(N) time}</p>
<p>The PS9110 altorithms can insert and delete data from an array in O(1) time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allan</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15256</link>
		<dc:creator><![CDATA[Allan]]></dc:creator>
		<pubDate>Tue, 13 Mar 2012 14:02:24 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15256</guid>
		<description><![CDATA[Also, recursively partitioning below eight elements or so causes the bookkeeping/stack frame overhead to eat up any advantage; I think most implementations use another algorithm once the recursively divided problem set gets this small.

Also, quicksort is not stable in its most general form; adding comparisons to induce stability may eat up speed advantage.]]></description>
		<content:encoded><![CDATA[<p>Also, recursively partitioning below eight elements or so causes the bookkeeping/stack frame overhead to eat up any advantage; I think most implementations use another algorithm once the recursively divided problem set gets this small.</p>
<p>Also, quicksort is not stable in its most general form; adding comparisons to induce stability may eat up speed advantage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15254</link>
		<dc:creator><![CDATA[Chris]]></dc:creator>
		<pubDate>Tue, 13 Mar 2012 04:04:10 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15254</guid>
		<description><![CDATA[Nice!  You are going to do this for merge and radix sorts, aren&#039;t you?]]></description>
		<content:encoded><![CDATA[<p>Nice!  You are going to do this for merge and radix sorts, aren&#8217;t you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Pelfrey</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15251</link>
		<dc:creator><![CDATA[Brandon Pelfrey]]></dc:creator>
		<pubDate>Mon, 12 Mar 2012 21:56:55 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15251</guid>
		<description><![CDATA[Quicksort is nice, but with a really minor modification, namely selecting a uniformly random pivot, the worst case running time is only O(n log n) in expectation. I definitely think you should check out (http://en.wikipedia.org/wiki/Quicksort#Randomized_quicksort_expected_complexity)]]></description>
		<content:encoded><![CDATA[<p>Quicksort is nice, but with a really minor modification, namely selecting a uniformly random pivot, the worst case running time is only O(n log n) in expectation. I definitely think you should check out (<a href="http://en.wikipedia.org/wiki/Quicksort#Randomized_quicksort_expected_complexity" rel="nofollow">http://en.wikipedia.org/wiki/Quicksort#Randomized_quicksort_expected_complexity</a>)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Federico Lebron</title>
		<link>/2012/03/12/algorithm-cheatsheet-quicksort/comment-page-1/#comment-15249</link>
		<dc:creator><![CDATA[Federico Lebron]]></dc:creator>
		<pubDate>Mon, 12 Mar 2012 15:57:48 +0000</pubDate>
		<guid isPermaLink="false">/?p=2893#comment-15249</guid>
		<description><![CDATA[Hi. While it is true that Mergesort&#039;s average is better than Quicksort&#039;s best (and, indeed, one can prove that in the &lt;em&gt;worst&lt;/em&gt; case, Mergesort makes as many comparisons as Quicksort&#039;s &lt;em&gt;best&lt;/em&gt; case!), it is important to remember that other things factor into the discussion. 
The reason why Quicksort is so often used, for example, is mostly cache behavior and real-world performance induced from this behavior. 
Likewise, it&#039;s important to remember the assumptions one makes (in terms of the computational model) when saying that Radix sort is &quot;faster&quot; than Quicksort. Namely, that they are bounded by above. This is not always a reasonable assumption to make.

In practice, implementations often choose &quot;intelligent quicksorts&quot;, or &quot;intelligent mergesorts&quot;. See Timsort, or Introsort. 

That said, cool chart :)]]></description>
		<content:encoded><![CDATA[<p>Hi. While it is true that Mergesort&#8217;s average is better than Quicksort&#8217;s best (and, indeed, one can prove that in the <em>worst</em> case, Mergesort makes as many comparisons as Quicksort&#8217;s <em>best</em> case!), it is important to remember that other things factor into the discussion.<br />
The reason why Quicksort is so often used, for example, is mostly cache behavior and real-world performance induced from this behavior.<br />
Likewise, it&#8217;s important to remember the assumptions one makes (in terms of the computational model) when saying that Radix sort is &#8220;faster&#8221; than Quicksort. Namely, that they are bounded by above. This is not always a reasonable assumption to make.</p>
<p>In practice, implementations often choose &#8220;intelligent quicksorts&#8221;, or &#8220;intelligent mergesorts&#8221;. See Timsort, or Introsort. </p>
<p>That said, cool chart 🙂</p>
]]></content:encoded>
	</item>
</channel>
</rss>
