2014-02-09 52 views
-2

https://gist.github.com/anonymous/8893599二进制插入按元素正在读入阵列排序

有代码。这是我得到的错误消息: 线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5在Project2.insertInOrder(Project2.java:121)在Project2.main(Project2.java:49)

含义,在数组长度加倍之前,索引被设置为5。

+0

如果你知道发生了什么,你为什么不修复它? – zapl

+0

请包括实际的代码,减少到演示问题的最小示例,而不是外部链接。 –

回答

0

这里

else if (guess < key) 

我认为你是有元相比较的指标。可能应该是:

else if (a[guess] < key) 
+0

由于猜测设置为等于135行的[mid],它确实是一个元素,与键相同。 – user3288754

+0

你是对的,忽略了一个。 – WonderWorld

+0

你为什么写'int mid = lo +((hi-lo)/ 2);'?你可以使用'(lo + hi)/ 2'。 – WonderWorld