【发布时间】:2020-08-01 07:27:58
【问题描述】:
我需要组织一个数组,但出现 OutOfBoundException 错误:
int[] A = {8, 6, 7, 9, 4, 8, 1, 4, 10, 3};
int start = 0;
int end = A.length;
public void insertionSort(int[] A, int start, int end) {
for (int i = start; i <= end; i++){
for (int j = i+1; j > start; j--){
if(A[j] < A[j-1]){
int k = j-1;
swap(A, j, k);
那个交换函数是别人已经做过的方法,他是教授,所以错误不是来自那里。谁能指出我失败的地方?
【问题讨论】:
-
您必须提供更多信息。交换是抛出错误还是 if-case?如果交换导致问题,请检查实现或询问编写它的人。如果是 if 情况,那么你的 start 或 end 变量是错误的。
-
看起来像一个错误,我没有真正考虑过,但你确定“i
-
我认为在第二个循环中应该是
j=i而不是j=i+1。 -
谢谢Phillipp,我改了还是不行。
-
我认为您需要做出 Philipp 和 dan 建议的更改之一。我的猜测是你没有大量的调试经验,而这就是这个作业可能应该帮助你的。在其中添加一些
System.out.println(...)语句,您可能会看到问题所在。如果您需要更多帮助,请直接给我发消息,我会尽力引导您完成。
标签: java arrays indexoutofboundsexception