 <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.algo.informatik.tu-darmstadt.de/index.php?action=history&amp;feed=atom&amp;title=Single_source_shortest_paths</id>
	<title>Single source shortest paths - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?action=history&amp;feed=atom&amp;title=Single_source_shortest_paths"/>
	<link rel="alternate" type="text/html" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;action=history"/>
	<updated>2026-10-09T23:52:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1390&amp;oldid=prev</id>
		<title>JanR at 10:32, 20 October 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1390&amp;oldid=prev"/>
		<updated>2014-10-20T10:32:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:32, 20 October 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# an arc weight &amp;lt;math&amp;gt; l(a) \in \mathbb{R}&amp;lt;/math&amp;gt; for each arc &amp;lt;math&amp;gt;a \in A&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# an arc weight &amp;lt;math&amp;gt; l(a) \in \mathbb{R}&amp;lt;/math&amp;gt; for each arc &amp;lt;math&amp;gt;a \in A&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# a '''root node''' &amp;lt;math&amp;gt; s \in V &amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# a '''root node''' &amp;lt;math&amp;gt; s \in V &amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Dijkstra]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Dijkstra]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known variants ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known variants ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JanR</name></author>
	</entry>
	<entry>
		<id>https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1389&amp;oldid=prev</id>
		<title>JanR at 10:30, 20 October 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1389&amp;oldid=prev"/>
		<updated>2014-10-20T10:30:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:30, 20 October 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;For each &amp;lt;math&amp;gt;v \in V&amp;lt;/math&amp;gt;, a real value &amp;lt;math&amp;gt;\delta (v)&amp;lt;/math&amp;gt;, the '''length''' of a shortest &amp;lt;math&amp;gt;(s,v)&amp;lt;/math&amp;gt;-path in &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; subject &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;to &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For each &amp;lt;math&amp;gt;v \in V&amp;lt;/math&amp;gt;, a real value &amp;lt;math&amp;gt;\delta (v)&amp;lt;/math&amp;gt;, the '''length''' of a shortest &amp;lt;math&amp;gt;(s,v)&amp;lt;/math&amp;gt;-path in &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; subject to &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Objective ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Objective ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;N/A&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;N/A&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Complexity ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Complexity ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;Polynomial&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Polynomial&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Known algorithms ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JanR</name></author>
	</entry>
	<entry>
		<id>https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1388&amp;oldid=prev</id>
		<title>JanR: Replaced content with &quot; == Input == # A directed graph &lt;math&gt;G=(V,A)&lt;/math&gt; # an arc weight &lt;math&gt; l(a) \in \mathbb{R}&lt;/math&gt; for each arc &lt;math&gt;a \in A&lt;/math&gt; # a '''root node''' &lt;math&gt; s \in V...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1388&amp;oldid=prev"/>
		<updated>2014-10-20T10:28:39Z</updated>

		<summary type="html">&lt;p&gt;Replaced content with &amp;quot; == Input == # A directed graph &amp;lt;math&amp;gt;G=(V,A)&amp;lt;/math&amp;gt; # an arc weight &amp;lt;math&amp;gt; l(a) \in \mathbb{R}&amp;lt;/math&amp;gt; for each arc &amp;lt;math&amp;gt;a \in A&amp;lt;/math&amp;gt; # a &amp;#039;&amp;#039;&amp;#039;root node&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt; s \in V...&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;amp;diff=1388&amp;amp;oldid=1380&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>JanR</name></author>
	</entry>
	<entry>
		<id>https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1380&amp;oldid=prev</id>
		<title>JanR: Created page with &quot;Category:Sorting Algorithms Category:Divide and Conquer &lt;div class=&quot;plainlinks&quot; style=&quot;float:right;margin:0 0 5px 5px; border:1px solid #AAAAAA; width:auto; padding:1e...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.algo.informatik.tu-darmstadt.de/index.php?title=Single_source_shortest_paths&amp;diff=1380&amp;oldid=prev"/>
		<updated>2014-10-20T10:04:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php?title=Category:Sorting_Algorithms&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Sorting Algorithms (page does not exist)&quot;&gt;Category:Sorting Algorithms&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:Divide_and_Conquer&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Divide and Conquer (page does not exist)&quot;&gt;Category:Divide and Conquer&lt;/a&gt; &amp;lt;div class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;float:right;margin:0 0 5px 5px; border:1px solid #AAAAAA; width:auto; padding:1e...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Sorting Algorithms]]&lt;br /&gt;
[[Category:Divide and Conquer]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;float:right;margin:0 0 5px 5px; border:1px solid #AAAAAA; width:auto; padding:1em; margin: 0px 0px 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 1.8em;font-weight:bold;text-align: center;margin:0.2em 0 1em 0&amp;quot;&amp;gt;Quick Sort&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 1.2em; margin:.5em 0 1em 0; text-align:center&amp;quot;&amp;gt;whatever&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 1.2em; margin:.5em 0 .5em 0;text-align:center&amp;quot;&amp;gt;[[File:olw_logo1.png|20px]][https://openlearnware.tu-darmstadt.de/#!/resource/quick-sort-1945 Openlearnware]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
'''Algorithmic problem:''' [[Sorting based on pairwise comparison]]&lt;br /&gt;
&lt;br /&gt;
'''Type of algorithm:''' recursion&lt;br /&gt;
&lt;br /&gt;
== Abstract view ==&lt;br /&gt;
&lt;br /&gt;
'''Invariant:''' After a recursive call, the input sequence of this recursive call is sorted.&lt;br /&gt;
&lt;br /&gt;
'''Variant:''' In each recursive call, the sequence of the callee is strictly shorter than that of the caller.&lt;br /&gt;
&lt;br /&gt;
'''Break condition:''' The sequence is empty or a singleton.&lt;br /&gt;
&lt;br /&gt;
== Induction basis ==&lt;br /&gt;
&lt;br /&gt;
'''Abstract view:''' Nothing to do on an empty sequence or a singleton.&lt;br /&gt;
&lt;br /&gt;
'''Implementation:''' Ditto.&lt;br /&gt;
&lt;br /&gt;
'''Proof:''' Empty sequences and singletons are trivially sorted.&lt;br /&gt;
&lt;br /&gt;
== Induction step ==&lt;br /&gt;
&lt;br /&gt;
=== Abstract view: ===&lt;br /&gt;
# Choose a pivot value &amp;lt;math&amp;gt;p \in [min\{x|x \in S\},\dots,max\{x|x \in S\}]&amp;lt;/math&amp;gt; (note that &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; is not required to be an element of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Partition &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; into sequences, &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;x &amp;lt; p&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;x \in S_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;x = p&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;x \in S_2&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;x &amp;gt; p&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;x \in S_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Sort &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt; recursively.&lt;br /&gt;
# The concatenation of all three lists, &amp;lt;math&amp;gt;S_1 \| S_2 \| S_3&amp;lt;/math&amp;gt;, is the result of the algorithm.&lt;br /&gt;
&lt;br /&gt;
=== Implementation: ===&lt;br /&gt;
&lt;br /&gt;
# Chose &amp;lt;math&amp;gt;p \in [min\{x|x \in S\},\dots,max\{x|x \in S\}]&amp;lt;/math&amp;gt; according to some pivoting rule.&lt;br /&gt;
# &amp;lt;math&amp;gt;S_1 := S_2 := S_3 := \emptyset&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For all &amp;lt;math&amp;gt;x \in S&amp;lt;/math&amp;gt;, append &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; to&lt;br /&gt;
## &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x &amp;lt; p&amp;lt;/math&amp;gt;,&lt;br /&gt;
## &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x = p&amp;lt;/math&amp;gt;,&lt;br /&gt;
## &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x &amp;gt; p&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Call Quicksort on &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; giving &amp;lt;math&amp;gt;S_1'&amp;lt;/math&amp;gt;&lt;br /&gt;
# Call Quicksort on &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt; giving &amp;lt;math&amp;gt;S_3'&amp;lt;/math&amp;gt;&lt;br /&gt;
# Return &amp;lt;math&amp;gt;S_1' \| S_2' \| S_3'&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Correctness: ===&lt;br /&gt;
&lt;br /&gt;
By induction hypothesis, &amp;lt;math&amp;gt;S_1'&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3'&amp;lt;/math&amp;gt; are sorted permutations of &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt;, respectively. In particular &amp;lt;math&amp;gt;S_1' \| S_2 \| S_3'&amp;lt;/math&amp;gt; is a permutation of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. To see that this permutation is sorted, let &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; be two members of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; immediately succeeds &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; in the resulting sequence &amp;lt;math&amp;gt;S_1' \| S_2 \| S_3'&amp;lt;/math&amp;gt;. We have to show &amp;lt;math&amp;gt;x \leq y&amp;lt;/math&amp;gt;.&lt;br /&gt;
# If &amp;lt;math&amp;gt;x,y \in S_1'&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;x,y \in S_3'&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;x \leq y&amp;lt;/math&amp;gt; resultes from the induction hypothesis.&lt;br /&gt;
# On the other hand, if &amp;lt;math&amp;gt;x,y \in S_2&amp;lt;/math&amp;gt;. It is &amp;lt;math&amp;gt;x = y = p&amp;lt;/math&amp;gt;, which trivially implies &amp;lt;math&amp;gt;x \leq y&amp;lt;/math&amp;gt;&lt;br /&gt;
# Finally, for following cases, &amp;lt;math&amp;gt;x \leq y&amp;lt;/math&amp;gt; is implied by the specific way of partitioning &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; into &amp;lt;math&amp;gt;S_1'&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3'&amp;lt;/math&amp;gt;:&lt;br /&gt;
## &amp;lt;math&amp;gt;x \in S_1'&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y \in S_2&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;x \in S_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y \in S_3'&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;x \in S_1'&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y \in S_3'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, this case distinction covers all potential cases, so the claim is proved.&lt;br /&gt;
&lt;br /&gt;
== Complexity ==&lt;br /&gt;
&lt;br /&gt;
=== Statement: ===&lt;br /&gt;
In the worst case, the complexity is &amp;lt;math&amp;gt;\Theta(n^2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If the pivot rule ensures for some &amp;lt;math&amp;gt;\alpha &amp;lt; 1&amp;lt;/math&amp;gt; that the lengths of &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt; are at most &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; times the size of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, then it is even &amp;lt;math&amp;gt;O(n \log n)&amp;lt;/math&amp;gt; in the worst case.&lt;br /&gt;
&lt;br /&gt;
If each pivot value is chosen uniformly randomly from members of the respective sequence and if all selections of pivot values are stochastically independent, the average-case complexity is &amp;lt;math&amp;gt;O(n \log n)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Proof: ===&lt;br /&gt;
First note that the complexity for a single recursive call on &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; (disregarding the complexity for the recursive descents on &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_3&amp;lt;/math&amp;gt; is in &amp;lt;math&amp;gt;O(|S|)&amp;lt;/math&amp;gt;. On each recursive level, all calls are on distinct subsets of &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. Therefore, the number of recursive calls with non-empty sequences on one recursive level is in &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;. The number of calls with empty sequences on one level is at most twice the total number of calls with non-empty sequences on the previous level. Hence, the number of calls with empty sequences on one recursive level is in &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt; as well. In summary, the total complexity on a recursive level is &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;. So, for the total complexity, it remains to estimate the number of recursive levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now consider the first statement. The recursion variant implies that the deepest recursive level is &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;. This gives the claimed &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt; in the worst case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next assume there is a fixed &amp;lt;math&amp;gt;\alpha &amp;lt; 1&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;|S_1| \leq \alpha \cdot|S|&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;|S_3| \leq \alpha \cdot|S|&amp;lt;/math&amp;gt; is guaranteed in each recursive call. Then the length of any sequence on recursive level &amp;lt;math&amp;gt;\#i&amp;lt;/math&amp;gt; is at most &amp;lt;math&amp;gt;\alpha ^ i \cdot |S|&amp;lt;/math&amp;gt;. Therefore, the maximal recursive depth is &amp;lt;math&amp;gt;\lceil \log_{a-1}(n)\rceil&amp;lt;/math&amp;gt;. Since &amp;lt;math&amp;gt;\alpha^{-1} &amp;gt; 1&amp;lt;/math&amp;gt;, the total complexity is in &amp;lt;math&amp;gt;O(n \log n)&amp;lt;/math&amp;gt; in the worst case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the last statement, the average-case analysis, first note that the number of comparisons alone has the same asymptotic complexity as the algorithm as a whole. Next note that any &amp;lt;math&amp;gt;x,y \in S&amp;lt;/math&amp;gt; are compared at most once throughout the entire algorithm if, and only if, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; is chosen as the pivot value for a subsequence to which both elements belong. For &amp;lt;math&amp;gt;x,y \in S&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt;Pr(x,y)&amp;lt;/math&amp;gt; denote the probability that &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; are indeed compared. Since comparison events are distinct and &amp;lt;math&amp;gt;Pr(x,y )\in \{0,1\}&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;x,y \in S&amp;lt;/math&amp;gt;, the [[Expected value|expected number]] of comparisons is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{x,y \in S, x \neq y} Pr(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;math&amp;gt;n := |S|&amp;lt;/math&amp;gt;, and for &amp;lt;math&amp;gt;i,j \in \{1,\dots,n\}&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt;Pr(i,j)&amp;lt;/math&amp;gt; denote the probability that the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th and the &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-th elemet of the eventual sorted sequence are compared throughout the algorithm. Using this notation, we may rewrite the above summation as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{x,y \in S, x \neq y} Pr(x,y) = \sum_{i=1}^{n-1} \sum_{j = i+1}^{n} Pr(i,j)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;math&amp;gt;i,j \in \{1,\dots,n\}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;i &amp;lt; j&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt; S_{ij}&amp;lt;/math&amp;gt; denote the subsequence of the eventual sorted sequence that starts with &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; and ends with &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;. The elements &amp;lt;math&amp;gt;\#i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\#j&amp;lt;/math&amp;gt; are compared if, and only if, &amp;lt;math&amp;gt;\#i&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;\#j&amp;lt;/math&amp;gt; is the very first element of &amp;lt;math&amp;gt;S_{ij}&amp;lt;/math&amp;gt; to be chosen as a pivot. The probability of this event is &amp;lt;math&amp;gt;\frac{2}{|S_{ij}|} = \frac{2}{j - i + 1}&amp;lt;/math&amp;gt;, so we obtain&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=1}^{n-1} \sum_{j = i+1}^{n} \frac{2}{j-i+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Substituting &amp;lt;math&amp;gt;k := j-i&amp;lt;/math&amp;gt;, this gives&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=1}^{n-1} \sum_{j = i+1}^{n} \frac{2}{j-i+1} = \sum_{i=1}^{n-1} \sum_{k=1}^{n} \frac{2}{k+1} \leq 2(n - 1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{k=1}^n \frac{1}{k+1} \leq 2(n-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{k+1}^n \frac{1}{k}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Harmonic_series_(mathematics)#Rate_of_divergence asymptotic behavior] of the [http://en.wikipedia.org/wiki/Harmonic_series_(mathematics) harmonic series] is &amp;lt;math&amp;gt;\Theta(\log n)&amp;lt;/math&amp;gt;, so the last expression is &amp;lt;math&amp;gt;\Theta(n \log n)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Further information ==&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; is an array, &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; cannot be decomposed into subsequences. We would liko to avoid the need for additional arrays and copy operations. Instead, the array should be sorted in-place, that is, by swap operations on pairs of elements. The auxiliary procedure, [[Pivot partitioning by scanning]], is designed exactly for that: it permutes the array such that each of &amp;lt;math&amp;gt;S_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S_2&amp;lt;/math&amp;gt; is a subarray. Then each recursive call of Quicksort operates on a subarray of the input array, which is specified by two index pointers.&lt;/div&gt;</summary>
		<author><name>JanR</name></author>
	</entry>
</feed>