按升序快速排序

时间:2016-05-06 18:43:54

标签: java quicksort

我试图通过测试人员通过我的Quicksort实现;但是,我在推荐的行

上获得了-1的Array Index Out Of Bounds异常
=IF(ISNUMBER($B2),$B2,"")

我试图调试我的代码,但似乎我没有看到修复错误的方法。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

为什么世界上你在做什么

int left = data.indexOf(firstIndex);
int right = data.indexOf(numberToPartition);

?这会查找正在排序的firstIndex元素中numberToPartitionList的值。这些数值决不会出现在数据中,即使它们存在,也完全是巧合。他们在数据中的指数没有意义。

如果这些值中的一个或两个存在于数据中,indexOf()会返回-1,然后您可以愉快地传递给List.get()

看起来你想要的更像是

 int left = firstIndex;
 int right = firstIndex + numberToPartition - 1;

答案 1 :(得分:0)

确保firstIndex确实发生了data,如果不是.indexOf方法返回-1,那么java.lang.ArrayIndexOutOfBoundsException: -1将会int left = data.indexOf(firstIndex);