擅长:python、mysql、java
<p>对于初学者:</p>
<pre><code>replacement = numbers[start]
replaced = numbers[start+1]
del numbers[start]
del numbers[start+1]
numbers.insert(start, replaced)
numbers.insert(start+1, replacement)
</code></pre>
<p>这看起来是一种很麻烦的交换两个数字的方法。试试这个方法:</p>
^{pr2}$
<p>不需要<code>del</code>和{<cd2>}。理解这三行的作用:我将位于<code>start</code>的值放入变量<code>replacement</code>。然后我用位置<code>start</code>处的值覆盖<code>start + 1</code>处的值。然后我用<code>replacement</code>中的值覆盖<code>start + 1</code>位置的值,这是<code>numbers[start]</code>的旧值。在</p>
<p>还有一种更有效的交换数字的方法(无论如何,在python中),但是对于初学者来说可能会有点困惑。在</p>
<p>但这并不是唯一的问题。在</p>
<p>实现BubbleSort的方法是“向上冒泡”,而不是“冒泡”。这意味着在第一次传递之后,您现在知道最大的元素将位于列表的末尾。在</p>
<p>这意味着在第一次通过后,不是将<code>start</code>增加1,而是必须将<em>上</em>结尾减少1。在</p>