【发布时间】:2023-05-11 17:49:01
【问题描述】:
我正在尝试编写一个方法,它接受一个排序数组和一个整数,创建一个大小大 1 的新数组,然后插入新整数并保持排序。
我已经尝试了几种不同的实现并让它们工作 - 但对于这个特定的实现,我不知道哪里出了问题。
int[] array1 = new int[]{1, 2, 3, 4, 6, 7, 8};
int[] printArray = insert(array1, 5);
是数组,方法是
public static int[] insert(int[] a, int k) {
int[] s = new int[a.length + 1];
for(int i = 0; i < a.length; i++) {
if(k < s[i]) {
s[i] = k;
for(int j = i + 1; j < s.length; j++) {
s[j] = a[i];
i++;
}
return s;
} else {
s[i] = a[i];
}
}
return s;
}
此方法打印出 1、2、3、4、6、7、8、0,而不是 1、2、3、4、5、6、7、8。
【问题讨论】:
-
你是对的,我打错了,它原本不打印5。