在这里,我们做了一点小处理,那就是把所有正整数在数组的位置都提前一位了,比如把5放在A[4],这样可以让整体的逻辑更清晰一点儿,减少出错的机会。
此外,最容易出错的地方就是没有考虑重复数字出现的可能了。如果没有考虑到这一点,内层循环就会陷入到一个死循环当中。这一点也很好想,假设有一个数出现了两次,其中一个正好在它对应的位置上,当遍历到另外一个时,由于肯定与当前位置不符,就需要交换,而换回来的数就是还是它,这就导致了死循环。
桶排序还是一个比较小众的技巧,在这里也算是最大程度地彰显了它的独特之处。不过除此之外,其他的应用就并不那么常见了。