【问题标题】:Binary Insertion Sort as elements are being read into the array当元素被读入数组时,二进制插入排序
【发布时间】:2014-03-06 11:04:58
【问题描述】:

https://gist.github.com/anonymous/8893599

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

意思是,在数组长度加倍之前,索引被设置为 5。

【问题讨论】:

  • 如果你知道发生了什么,为什么不解决它?
  • 请包含实际代码,简化为演示问题的最小示例,而不是外部链接。

标签: java arrays sorting binary insertion-sort


【解决方案1】:

这里

else if (guess < key)

我认为您正在将索引与元素进行比较。大概应该是:

else if (a[guess] < key)

【讨论】:

  • 因为guess在第135行被设置为a[mid],它确实是一个元素,和key一样。
  • 你为什么写int mid = lo + ((hi - lo)/2);?你可以使用(lo + hi)/2
猜你喜欢
  • 1970-01-01
  • 2016-03-18
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-05
  • 1970-01-01
相关资源
最近更新 更多