Java Code Error in "堆排序(上)"
RiskySignal opened this issue · comments
我发现 ”堆排序(上)“的最后一个java代码中有错误。在构建堆的时候应该保证 i>0
,即代码应该改成如下:
public void buildHeap() { for (int i = size >> 1; i > 0; i--) { shiftDown(i); } }
原有的测试确实不会出现错误,因为java的int默认是0,如果你加入一个负数的话,就能发现这个错误。
建议附上文章链接, 段落位置以及行号
这个错误的原因其实在于数组的第一项本来应该不参与运算的(至少我的这个实现是这样),这里却参与了。 而测试没有发现的问题在于 java 默认的 0 比其他元素都小。
fixed。 thank u
😄 很棒