<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://metabolomics.jp/mediawiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://metabolomics.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Aritalab%3ALecture%2FAlgorithm%2FQuicksort</id>
		<title>Aritalab:Lecture/Algorithm/Quicksort - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://metabolomics.jp/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Aritalab%3ALecture%2FAlgorithm%2FQuicksort"/>
		<link rel="alternate" type="text/html" href="http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;action=history"/>
		<updated>2026-04-09T02:18:22Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254236&amp;oldid=prev</id>
		<title>Adm at 08:04, 2 June 2011</title>
		<link rel="alternate" type="text/html" href="http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254236&amp;oldid=prev"/>
				<updated>2011-06-02T08:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:04, 2 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;クイックソートのアルゴリズムは、[[Aritalab:Lecture/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Basic&lt;/del&gt;/Sorting|ソートのページ]]を参照してください。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;クイックソートのアルゴリズムは、[[Aritalab:Lecture/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Algorithm&lt;/ins&gt;/Sorting|ソートのページ]]を参照してください。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==平均計算量==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==平均計算量==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adm</name></author>	</entry>

	<entry>
		<id>http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254235&amp;oldid=prev</id>
		<title>Adm: moved Aritalab:Lecture/Basic/Quicksort to Aritalab:Lecture/Algorithm/Quicksort</title>
		<link rel="alternate" type="text/html" href="http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254235&amp;oldid=prev"/>
				<updated>2011-06-01T15:29:04Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/mediawiki/index.php?title=Aritalab:Lecture/Basic/Quicksort&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Aritalab:Lecture/Basic/Quicksort (page does not exist)&quot;&gt;Aritalab:Lecture/Basic/Quicksort&lt;/a&gt; to &lt;a href=&quot;/wiki/Aritalab:Lecture/Algorithm/Quicksort&quot; title=&quot;Aritalab:Lecture/Algorithm/Quicksort&quot;&gt;Aritalab:Lecture/Algorithm/Quicksort&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:29, 1 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Adm</name></author>	</entry>

	<entry>
		<id>http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254234&amp;oldid=prev</id>
		<title>Adm: New page: クイックソートのアルゴリズムは、ソートのページを参照してください。  ==平均計算量== ピボットをランダムに...</title>
		<link rel="alternate" type="text/html" href="http://metabolomics.jp/mediawiki/index.php?title=Aritalab:Lecture/Algorithm/Quicksort&amp;diff=254234&amp;oldid=prev"/>
				<updated>2010-10-20T01:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;New page: クイックソートのアルゴリズムは、&lt;a href=&quot;/mediawiki/index.php?title=Aritalab:Lecture/Basic/Sorting&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Aritalab:Lecture/Basic/Sorting (page does not exist)&quot;&gt;ソートのページ&lt;/a&gt;を参照してください。  ==平均計算量== ピボットをランダムに...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;クイックソートのアルゴリズムは、[[Aritalab:Lecture/Basic/Sorting|ソートのページ]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==平均計算量==&lt;br /&gt;
ピボットをランダムに選ぶクイックソートの平均計算量は、2 n log&amp;lt;sub&amp;gt;e&amp;lt;/sub&amp;gt; n = 1.4 n log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; n といわれます。&lt;br /&gt;
その値を導出しましょう。&lt;br /&gt;
&lt;br /&gt;
長さ n の配列をソートする手間数を C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; と書くと、以下の漸化式を満たします。&lt;br /&gt;
&lt;br /&gt;
: C&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 0&lt;br /&gt;
: C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (n-1) + (2/n) &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n-1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=0&amp;lt;/sub&amp;gt; C&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
両辺を n 倍して、その式で n を (n-1) と置き換えたものを引き算すると&lt;br /&gt;
: n C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; - (n-1) C&amp;lt;sub&amp;gt;n-1&amp;lt;/sub&amp;gt; = 2 (n-1) + 2 C&amp;lt;sub&amp;gt;n-2&amp;lt;/sub&amp;gt; (n &amp;gt; 1)&lt;br /&gt;
この式は n = 1 のとき　C&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;　= 0 となるので、n &amp;gt; 0 で成立します。&lt;br /&gt;
つまり、漸化式は&lt;br /&gt;
: C&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 0&lt;br /&gt;
: n C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = (n + 1) C&amp;lt;sub&amp;gt;n-1&amp;lt;/sub&amp;gt; + 2 (n-1)&lt;br /&gt;
と書き直せます。&lt;br /&gt;
和の因子として s&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = 2 / n(n+1) を導入すると、[[Aritalab:Lecture/Basic/Reccurrence|漸化式の一般解]]を用いて解くことができ、&lt;br /&gt;
: C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = 2(n+1) &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=1&amp;lt;/sub&amp;gt; 1 /(k+1)&lt;br /&gt;
となります。&lt;br /&gt;
&lt;br /&gt;
最後に、調和数 (Harmonic number) ''&amp;amp;Eta;''&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=1&amp;lt;/sub&amp;gt; 1 / k を導入します。&lt;br /&gt;
: &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=1&amp;lt;/sub&amp;gt;1 /(k+1) = &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n+1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=2&amp;lt;/sub&amp;gt; 1 / k&lt;br /&gt;
:::: = -1 + 1/(n+1) + &amp;lt;big&amp;gt;∑&amp;lt;/big&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;k=1&amp;lt;/sub&amp;gt;1 / k&lt;br /&gt;
:::: = - n / (n+1) + ''&amp;amp;Eta;''&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
調和数は  ''&amp;amp;Eta;''&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = log&amp;lt;sub&amp;gt;e&amp;lt;/sub&amp;gt; n ですから、&lt;br /&gt;
C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; ≒ 2n log&amp;lt;sub&amp;gt;e&amp;lt;/sub&amp;gt; n となります。&lt;/div&gt;</summary>
		<author><name>Adm</name></author>	</entry>

	</feed>