<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.60.69.41</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.60.69.41"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/24.60.69.41"/>
		<updated>2026-07-07T00:07:56Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30525</id>
		<title>Talk:1185: Ineffective Sorts</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30525"/>
				<updated>2013-03-17T22:45:06Z</updated>
		
		<summary type="html">&lt;p&gt;24.60.69.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I loved the &amp;quot;runs in O(n log n)&amp;quot; part. [[Special:Contributions/76.106.251.87|76.106.251.87]] 00:16, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I lost it on //portability. It's a sad state where I've actually more or less come across 3 of these. [[Special:Contributions/203.126.136.142|203.126.136.142]] 00:56, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Audiovisual aid circa 1981, eh: '''http://youtube.com/watch?v=gv0JUEqaAXo#t=236s''' [[Special:Contributions/98.111.152.198|98.111.152.198]] 01:35, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
One of xkcd's best in a quite a while, imo. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 03:39, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Saying &amp;quot;bogosorts actually run in O(n*n!) time and may never finish&amp;quot; is a contradiction. Not the runtime is in O(n*n!), but the ''expected'' runtime.  [[User:BKA|BKA]] ([[User talk:BKA|talk]]) 08:19, 14 March 2013 (UTC)&lt;br /&gt;
:Not necessarily. O(n*n!) is the expected runtime, but unlike other sorts, there is no max runtime which is what it is trying to say.[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
Didn't the author of the halfhearted merge sort give up on the sort part of the merge sort? 'cause merging is done in the return[a,b] part as far is see it...[[Special:Contributions/193.175.223.10|193.175.223.10]] 18:00, 14 March 2013 (UTC)&lt;br /&gt;
[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)Well return[a,b] merges them in exactly the original order. So I think you are right. It recursively cuts the list into tiny bits and returns the uncut back to the previous call. [[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
:The list is sorted when the already sorted sublists are merged. This is an efficient way to sort because only the lowest values in each sublist need to be compared so fewer comparisons are required. The author of the halfhearted merge sort did not write a proper merge (or any merge) and instead returns the sublists in the original order. Sublists of length one are known to be in the correct order which is why the list is recursively cut into units of length one.[[Special:Contributions/24.60.69.41|24.60.69.41]] 22:44, 17 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>24.60.69.41</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30524</id>
		<title>Talk:1185: Ineffective Sorts</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30524"/>
				<updated>2013-03-17T22:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;24.60.69.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I loved the &amp;quot;runs in O(n log n)&amp;quot; part. [[Special:Contributions/76.106.251.87|76.106.251.87]] 00:16, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I lost it on //portability. It's a sad state where I've actually more or less come across 3 of these. [[Special:Contributions/203.126.136.142|203.126.136.142]] 00:56, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Audiovisual aid circa 1981, eh: '''http://youtube.com/watch?v=gv0JUEqaAXo#t=236s''' [[Special:Contributions/98.111.152.198|98.111.152.198]] 01:35, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
One of xkcd's best in a quite a while, imo. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 03:39, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Saying &amp;quot;bogosorts actually run in O(n*n!) time and may never finish&amp;quot; is a contradiction. Not the runtime is in O(n*n!), but the ''expected'' runtime.  [[User:BKA|BKA]] ([[User talk:BKA|talk]]) 08:19, 14 March 2013 (UTC)&lt;br /&gt;
:Not necessarily. O(n*n!) is the expected runtime, but unlike other sorts, there is no max runtime which is what it is trying to say.[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
Didn't the author of the halfhearted merge sort give up on the sort part of the merge sort? 'cause merging is done in the return[a,b] part as far is see it...[[Special:Contributions/193.175.223.10|193.175.223.10]] 18:00, 14 March 2013 (UTC)&lt;br /&gt;
[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)Well return[a,b] merges them in exactly the original order. So I think you are right. It recursively cuts the list into tiny bits and returns the uncut back to the previous call. [[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
:The list is sorted when the already sorted sublists are merged. This is an efficient way to sort because only the lowest values in each sublist need to be compared so fewer comparisons are required. The author of the halfhearted merge sort did not write a proper mege (or any merge) and instead returns the sublists in the original order. Sublists of length one are known to be in the correct order which is why the list is recursively cut into units of length one.[[Special:Contributions/24.60.69.41|24.60.69.41]] 22:44, 17 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>24.60.69.41</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30523</id>
		<title>Talk:1185: Ineffective Sorts</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30523"/>
				<updated>2013-03-17T22:38:49Z</updated>
		
		<summary type="html">&lt;p&gt;24.60.69.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I loved the &amp;quot;runs in O(n log n)&amp;quot; part. [[Special:Contributions/76.106.251.87|76.106.251.87]] 00:16, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I lost it on //portability. It's a sad state where I've actually more or less come across 3 of these. [[Special:Contributions/203.126.136.142|203.126.136.142]] 00:56, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Audiovisual aid circa 1981, eh: '''http://youtube.com/watch?v=gv0JUEqaAXo#t=236s''' [[Special:Contributions/98.111.152.198|98.111.152.198]] 01:35, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
One of xkcd's best in a quite a while, imo. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 03:39, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Saying &amp;quot;bogosorts actually run in O(n*n!) time and may never finish&amp;quot; is a contradiction. Not the runtime is in O(n*n!), but the ''expected'' runtime.  [[User:BKA|BKA]] ([[User talk:BKA|talk]]) 08:19, 14 March 2013 (UTC)&lt;br /&gt;
:Not necessarily. O(n*n!) is the expected runtime, but unlike other sorts, there is no max runtime which is what it is trying to say.[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
Didn't the author of the halfhearted merge sort give up on the sort part of the merge sort? 'cause merging is done in the return[a,b] part as far is see it...[[Special:Contributions/193.175.223.10|193.175.223.10]] 18:00, 14 March 2013 (UTC)&lt;br /&gt;
[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)Well return[a,b] merges them in exactly the original order. So I think you are right. It recursively cuts the list into tiny bits and returns the uncut back to the previous call. [[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>24.60.69.41</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30522</id>
		<title>Talk:1185: Ineffective Sorts</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:1185:_Ineffective_Sorts&amp;diff=30522"/>
				<updated>2013-03-17T22:37:37Z</updated>
		
		<summary type="html">&lt;p&gt;24.60.69.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I loved the &amp;quot;runs in O(n log n)&amp;quot; part. [[Special:Contributions/76.106.251.87|76.106.251.87]] 00:16, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
I lost it on //portability. It's a sad state where I've actually more or less come across 3 of these. [[Special:Contributions/203.126.136.142|203.126.136.142]] 00:56, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Audiovisual aid circa 1981, eh: '''http://youtube.com/watch?v=gv0JUEqaAXo#t=236s''' [[Special:Contributions/98.111.152.198|98.111.152.198]] 01:35, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
One of xkcd's best in a quite a while, imo. [[User:Alpha|Alpha]] ([[User talk:Alpha|talk]]) 03:39, 14 March 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Saying &amp;quot;bogosorts actually run in O(n*n!) time and may never finish&amp;quot; is a contradiction. Not the runtime is in O(n*n!), but the ''expected'' runtime.  [[User:BKA|BKA]] ([[User talk:BKA|talk]]) 08:19, 14 March 2013 (UTC)&lt;br /&gt;
:Not necessarily. O(n*n!) is the expected runtime, but unlike other sorts, there is no max runtime which is what it is trying to say.[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)&lt;br /&gt;
Didn't the author of the halfhearted merge sort give up on the sort part of the merge sort? 'cause merging is done in the return[a,b] part as far is see it...[[Special:Contributions/193.175.223.10|193.175.223.10]] 18:00, 14 March 2013 (UTC)&lt;br /&gt;
[[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC)Well return[a,b] merges them in exactly the original order. So I think you are right. It recursively cuts the list into tiny bits and returns the uncut back to the previous call. [[Special:Contributions/206.181.86.98|206.181.86.98]] 03:09, 15 March 2013 (UTC) The list is sorted when the already sorted sublists are merged. This is an efficient way to sort because only the lowest values in each sublist need to be compared so fewer comparisons are required. The author of the halfhearted merge sort did not write a proper mege (or any merge) and instead returns the sublists in the original order. Sublists of length one are known to be in the correct order which is why the list is recursively cut into units of length one.&lt;/div&gt;</summary>
		<author><name>24.60.69.41</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1185:_Ineffective_Sorts&amp;diff=30358</id>
		<title>1185: Ineffective Sorts</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1185:_Ineffective_Sorts&amp;diff=30358"/>
				<updated>2013-03-13T18:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;24.60.69.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1185&lt;br /&gt;
| date      = March 13, 2013&lt;br /&gt;
| title     = Ineffective Sorts&lt;br /&gt;
| image     = ineffective_sorts.png&lt;br /&gt;
| titletext = StackSort connects to StackOverflow, searches for 'sort a list', and downloads and runs code snippets until the list is sorted.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
The comic gives examples of four non-functional sorting algorithms written in pseudo python. &lt;br /&gt;
&lt;br /&gt;
The first sort is an unfinished merge sort. The merge sort works recursively, dividing itself in half and doing a merge sort to each half. After the two halves are sorted, they are merged, taking advantage of the fact that the two halves are now in correct order and thus the merge can be done with a minimum number of comparisons. The sort will divide the list until it contains elements of size one, then would begin merging. However, the author of the merge sort in the comic appears to have given up on writing the merge part of the sort. In its current state, the sort would divide the list into elements of size one, do nothing to them, and return the two halves of the original list.&lt;br /&gt;
&lt;br /&gt;
The second sort is a bogosort, a sort that works by randomly shuffling the elements in the list. It claims to run in O(nlog(n)) time although bogosorts typically run in O(n*n!) time and may never finish. It achieves this by returning an error if the list isn't ordered after shuffling log(n) times.&lt;br /&gt;
&lt;br /&gt;
The third sort parodies a programmer explaining a quicksort during a job interview. The quicksort works by choosing a index as a pivot value and sorting all elements less than the pivot before the pivot and all the elements greater than the pivot after the pivot. It then does a quicksort to the section less than the pivot and the section greater than the pivot until the whole list is sorted. The interviewee flounders for a little while, then asks whether he can use the standard libraries to call a quicksort. Using the standard library's quicksort would allow the programmer to successfully execute a quicksort, but would not demonstrate that they know how it works.&lt;br /&gt;
&lt;br /&gt;
The final sort is just a mess. First it checks to see if the list is sorted, and exits if it is. Then it cuts the list 10,000 times (like a deck of cards) and exits if the list is sorted. Next, in desperation, it checks if the list is sorted three times. It then empties the list, tries to shutdown the computer and attempts to delete first the current directory, second the user's home directory, and finally the entire file system. rm is a gnu command; the -r and -f flags mean that the remove command will remove all contents of the specified directories and will not prompt the user beforehand. The program next runs rd, the windows equivalent of rm, in an attempt to delete the &amp;quot;C:&amp;quot; drive. The /s flag does the same thing as -r and the /q flag does the same thing as -f. Finally, the program returns a list containing the numbers one through five in order.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&amp;lt;!-- The transcript can be found in a hidden &amp;lt;div&amp;gt; element on the xkcd comic's html source, with id &amp;quot;transcript&amp;quot;.&lt;br /&gt;
  -- Tip: Use colons (:) in the beginning of lines to preserve the original line breaks. &lt;br /&gt;
  -- Any actions or descriptive lines in [[double brackets]] should be reduced to [single brackets] to avoid wikilinking&lt;br /&gt;
  -- Do not include the title text again here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&amp;lt;!-- Include any categories below this line--&amp;gt;&lt;/div&gt;</summary>
		<author><name>24.60.69.41</name></author>	</entry>

	</feed>