在有序数组中插入新元素,并使数组依然有序


import java.util.*;

//在有序数组中插入一个数字,使数组依然有序排列
public class DemoinDex06 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//原数组
int [] oldarr = {11,22,33,44,55,66,77};
//要添加的数字
System.out.println("请输入您要插入的数字:");
int num =input.nextInt();



//建立一个新数组的框架【因为数组一经定义无法在添加】
int [] newarr = new int[oldarr.length+1];
//将原数组的元素赋值到新数组当中
for (int i = 0; i < oldarr.length; i++) {
newarr [i]= oldarr[i];
}
//初始化一个索引的位置
int index = 0;
//确定index在新数组中的位置 【此处要从大往小比】
for (int i = oldarr.length-1; i >=0; i--) {
if (num>newarr[i]){
index = i+1;
break;
}
}
//移动新数组各元素的位置,给要添加的数字空出位置
for (int i = oldarr.length-1; i >=index; i--) {
newarr[i+1]=newarr[i];
}
//将要插入的数字保存进相应位置
newarr [index] = num;
System.out.println(Arrays.toString(newarr));
}

结果:

 

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM