<p>请编写代码以实现名为“<em><strong>合并排序”的算法</p>
<p>你可以点击这些链接阅读<a href="https://en.wikipedia.org/wiki/Merge_sort" rel="nofollow noreferrer"><em><strong>merge-sort</strong></em></a>上的<a href="https://en.wikipedia.org/wiki/Merge_sort" rel="nofollow noreferrer">wikipedia page</a></p>
<p>编写代码以完成以下任务:</p>
<ol>
<li>对每个列表进行排序。例如<code>[4, 2, 1, 2, 5, 0]</code>变成<code>[0, 1, 2, 3, 4, 5]</code></li>
<li>合并已排序的列表。例如,合并<code>[1, 3, 4, 9]</code>和<code>[2, 6, 20]</code>以形成<code>[1, 2, 3, 4, 6, 20]</code></li>
<li>从左到右遍历最终排序的合并列表。如果当前元素与上一个元素不同,则输出当前元素</李>
</ol>
<P>考虑下面的列表,名为{{CD6>}:</P>
<pre class="lang-python prettyprint-override"><code>OUTPUTS (VALUES) [1, 1, 1, 5, 5, 6, 9, 9, 9, 9, 14, 14, 14]
INPUTS (INDICIES) 0 1 2 3 4 5 6 7 8 9 10 11 12
</code></pre>
<p>从左到右浏览列表</p>
<p>请注意<code>the_list[0]</code>是<code>1</code>。<br/>
<code>1</code>以前从未见过。<br/>
因此,您应该将<code>1</code>发送到输出流</p>
<p>我们已完成处理<code>the_list[0]</code><br/>
接下来,看一下<code>the_list[1]</code>。
<code>the_list[1]</code>等于上一个值。<br/>
因此,不要将<code>the_list[1]</code>发送到输出流</p>
<p>只有当输入发生变化时,我们才会将输入发送到输出流</p>
<p>只要输入与2秒前相同,我们就不会向输出流发送输出</p>
<pre class="lang-python prettyprint-override"><code>def foobar(the_list):
# `prev` stands for the English word `previous`
the_list = iter(the_list)
prev = next(the_list)
yield prev
for elem in the_list:
if elem != prev:
yield elem
prev = elem
</code></pre>