我正在做一个简单的MergeSort实现,将其形成伪代码。我为此目的使用Java Generics。但是我在第一个for循环的最后一个元素上得到了这样的异常。我已经做了一些改变(希望更好),但这个不可避免地会出现。为什么会这样?
ssh pi@server.com '. /etc/profile ; cd project; pm2 restart app.js -x -- --prod'
答案 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
,所以你有一个无限循环。