擅长:python、mysql、java
<p>使用内置的<code>sort()</code>列表方法:</p>
<pre><code>>>> words = [ 'baloney', 'aardvark' ]
>>> words.sort()
>>> print words
['aardvark', 'baloney']
</code></pre>
<p>它使用一个<code>O(n lg(n))</code>排序<sup>1</sup>,即<a href="http://en.wikipedia.org/wiki/Timsort" rel="noreferrer">Timsort</a>(我相信这是一个经过修改的合并排序)。它对速度有很高的调节。)。</p>
<hr/>
<p><sup>1</sup>正如注释中指出的,这是指元素比较的数量,而不是低级操作的数量。由于本例中的元素是字符串,比较两个字符串需要进行<code>min{|S1|, |S2|}</code>字符比较,因此总复杂度为<code>O(n lg(n) * |S|)</code>,其中<code>|S|</code>是要排序的最长字符串的长度。然而,对于所有比较类型来说,这都是正确的——真正的操作数取决于被排序元素类型的元素比较函数的成本。因为所有比较排序都使用相同的比较函数,所以在比较这些排序的算法复杂性时,可以忽略这一微妙之处。</p>