题目:在一个有序的数组中,想要将一个元素插入该数组中,还要保证还数组是有序的。
已解决部分:采用折半查找的方法,修改返回值,已找到该元素要放的位置。
未解决:原本数组长度为8,如何将数组长度变为9?如何将元素插入?
有问题的代码如下:
最终运行结果如下:(上边一行是原序列,下面是插入元素8后的序列,插入元素8后的序列缺少元素100,如何解决呢?
4 回答
慕粉3502418
TA贡献2条经验 获得超2个赞
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9};
int num = 4;
int newArray[] = new int[arr.length + 1];
System.arraycopy(arr, 0, newArray, 0, arr.length);
newArray[newArray.length - 1] = num;// 此时数组最后一个元素的值变为num
for (int i = newArray.length - 1; i > 0; i--) { // 把数组下标最大值赋值给i,只要i大于等于数组最小下标就执行循环体
if (newArray[i] < newArray[i - 1]) { // 如果数组第i+1个元素小于第i个元素时 [注意下标比实际位置小1]
int temp = newArray[i]; // 下面的代码定义了一个临时变量,借此交换数组中两个值
newArray[i] = newArray[i - 1];
newArray[i - 1] = temp;
}
}
for (int i : newArray)
System.out.println(i);
}
添加回答
举报
0/150
提交
取消