JAVA 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:53:14
JAVA 编写
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
(升序排列),刚入门JAVA这题较困难!!
那个用list的,我无法理解,因为我刚入门数组是刚学个开头

/**
被你的提问牵着走了,其实这个问题很简单,反正是在已排好序中插入一个数,
那就先新建一个数组,把原来的数组中的数据全复制过去,一并将要插入的数也放进去(放在开始或结尾都行),然后重新排序就行了,原来我还想先找出插入点,再作处理,其实从效率上说,感觉差不多,所以就有如下设计:
*/

///: Filename: Insert.java
public class Insert {
public static void main(String[] args) {
int[] i = {5,6,7,44,55,89,};//原来的数组
int x = 24;//要插入的数据
System.out.print("插入前数据: ");
print(i);
i=insert(i,x);
System.out.print("插入["+x+"]后数据: ");
print(i);
}
/**遍历并打印出数组中的数据*/
private static void print(int[] a){
for(int i=0; i<a.length; i++)
System.out.print(a[i]+", ");
System.out.println();//换行
}
/**插入数据并重新排序的方法*/
private static int[] insert(int[] a,int in){
int[] copy = new int[a.length+1];//新建一个临时数组,长度比原数要大1
copy[0]=in;//先将要插入的数据放入第一单元格
//原来数组中的数复制过来,存在第二格为开始的单元格中
for(int i=0; i<a.length; i++)
copy[i+1]=a[i];
//对临时数组重新排序<