擅长:python、mysql、java
<p><code>Partition</code>函数有逻辑问题。
如果使用调试器跟踪它,您将看到它总是在返回之前将数组恢复到其初始状态。实际上,数组会被视为已修改,问题是在对它进行一段时间的修改之后,它会恢复到进入函数时的状态。你知道吗</p>
<p>你使用调试工具吗?如果没有,现在就开始。
如果是这样,请在<code>return j</code>语句上放置一个断点,并检查数组,您将了解我的意思。你知道吗</p>
<p>您正在尝试实现<em>Hoare</em>分区,对吗?
我想你有点搞混了。这个问题是因为在第一次循环迭代之前,您正在与pivot进行比较,最后您将再次比较刚刚交换的元素。你知道吗</p>