使用MergeSort的数组OutOfBounds异常

时间:2015-11-10 12:22:15

标签: java arrays indexoutofboundsexception mergesort

我正在做一个简单的MergeSort实现,将其形成伪代码。我为此目的使用Java Generics。但是我在第一个for循环的最后一个元素上得到了这样的异常。我已经做了一些改变(希望更好),但这个不可避免地会出现。为什么会这样?

ssh pi@server.com '. /etc/profile ; cd project; pm2 restart app.js -x -- --prod'

2 个答案:

答案 0 :(得分:2)

虽然您的代码难以阅读,但我认为您正在比较错误的值。

  for(int h = i; i <= m; h++){
                 ^
                should be h
                elements[k + (h - i)] = elements[h];
                //ArrayIndexOutOfBoundsException: 4(the length of the input array)


 }

答案 1 :(得分:1)

您使用:

for(int h = i; i <= m; h++) {
    elements[k + (h - i)] = elements[h];
}

您总是增加h,但要比较i <= m。因为你永远不会改变i,所以你有一个无限循环。