java程序:在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置。怎么写啊?

我是初学者,用普通的方法哦,不要直接调用什么API,不是很懂里面的。... 我是初学者,用普通的方法哦,不要直接调用什么API,不是很懂里面的。 展开
 我来答
liuyang054
2016-05-11 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5305万
展开全部
import java.util.Scanner;

/**
 * @author young
 * @Description: 向一个已排序好的数组里面插入一个数,维持原来的排序规律
 * @date 2016年5月11日下午6:45:03
 */
public class InsertSortArrTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 在排序好的数组插入一个数字,数字要插入到合适的位置上
int intArr[] = { 11, 22, 33, 44, 55, 66, 77 };
System.out.println("输入一个插入的数:");
int insertNum = scanner.nextInt();
// 找到要插入的位置
int insertIndex = 0;
for (int i = 0; i < intArr.length; i++) {
if (insertNum < intArr[i]) {
insertIndex = i;
break;
}
}
// 将insertNum放入要插入的位置,然后后面每个都向后移动一位角标
int intArr1[] = new int[intArr.length + 1];
for (int i = 0; i < intArr1.length; i++) {
if (i >= insertIndex) {
if (i == insertIndex) // 这个只做一次
intArr1[i] = insertNum;

if (i + 1 < intArr1.length) // i+1会越界,加判断
intArr1[i + 1] = intArr[i];
} else {
// 插入之前执行,开始执行插入以后就不执行
intArr1[i] = intArr[i];
}
}
// 循环输出
for (int i : intArr1) {
System.out.print(i + " ");
}
}

}

yipiantianYS
2011-06-08 · TA获得超过347个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:114万
展开全部
你的数组空间长度应足够,假设:数组为a是整型数组,长度为n,插入位置为m,且m<n,插入元素为XX,你用如下程序段即可实现插入操作
//**************************************
for(int i=n-1;i>=m;i--)
{
a[i]=a[i-1];
}
a[m-1]=XX;
//**************************************
主要思想是:将数组a中m位置以后的元素整体先后移动一个位置,然后将待插入的元素赋值给
a[m-1]即可。
注意:至少被插入的数组最后一个空间是空值,否则插入时后面的值会被前面移来的值覆盖的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式