JAVA已知一个数组中的数有序排列,编程实现插入一个数后,依然有序,怎么操作?

 我来答
历盆郁7
2018-02-21 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:959万
展开全部
有两种方法,代码都给你
第一种,就是常规的想法,:建个数组,然后逐个比较,这应该也是出题人的考察点,但是这种题不适合在java理出,一般C语言愿意有这样的问题.

import java.util.Arrays;
public class $ {
public static void main(String[] args) { Integer[] arr = { 11, 22, 33, 44, 55, 66, 77, 88, 99 };
System.out.println("插入前:" + Arrays.deepToString(arr));
Integer[] brr = insert(arr, 60);
System.out.println("插入前:" + Arrays.deepToString(brr));
}

private static Integer[] insert(Integer[] arr, int num) {
Integer[] brr = new Integer[arr.length + 1];
int idx = 0;
boolean hasInsert = false;
for (int i = 0; i < arr.length; i++) {

if (hasInsert) {
brr[idx++] = arr[i];
continue;
}

if (arr[i] > num) {
brr[idx++] = num;
hasInsert = true;
}
brr[idx++] = arr[i];
}
return brr;
}
}

第二种就是利用java api里的方法,实现简单,但是效率不够,而且也违背了出题人的意愿,可做了解
private static Integer[] insert(Integer[] arr, int num) {
List<Integer> data = new ArrayList<Integer>();
for (Integer a : arr) {
data.add(a);
}
data.add(num);

Collections.sort(data);
return data.toArray(new Integer[0]);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式