https://gist.github.com/anonymous/8893599二进制插入按元素正在读入阵列排序
有代码。这是我得到的错误消息: 线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5在Project2.insertInOrder(Project2.java:121)在Project2.main(Project2.java:49)
含义,在数组长度加倍之前,索引被设置为5。
https://gist.github.com/anonymous/8893599二进制插入按元素正在读入阵列排序
有代码。这是我得到的错误消息: 线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5在Project2.insertInOrder(Project2.java:121)在Project2.main(Project2.java:49)
含义,在数组长度加倍之前,索引被设置为5。
这里
else if (guess < key)
我认为你是有元相比较的指标。可能应该是:
else if (a[guess] < key)
由于猜测设置为等于135行的[mid],它确实是一个元素,与键相同。 – user3288754
你是对的,忽略了一个。 – WonderWorld
你为什么写'int mid = lo +((hi-lo)/ 2);'?你可以使用'(lo + hi)/ 2'。 – WonderWorld
如果你知道发生了什么,你为什么不修复它? – zapl
请包括实际的代码,减少到演示问题的最小示例,而不是外部链接。 –