我正在尝试编写一个方法,该方法接受一个排序数组和一个整数,创建一个大小大 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。
最佳答案
改变
if(k < s[i]) {
到
if(k < a[i]) {
在第 4 行。
关于java - 将整数插入排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708108/