有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
这道题,我用了直接插入和冒泡排序两种方式来做。
代码:
import java.util.Scanner;
public class 插入 {
public static void main(String[] args) {
int[] a={1,3,5,7};
int[] b=new int[a.length+1];
Scanner sc=new Scanner(System.in);
//冒泡
System.out.print("请输入整数:");
int c=sc.nextInt();
b=insert1(a,c);
for(int i=0;i<b.length;i++)
System.out.print(b[i]+" ");
System.out.println();
//直接插入
System.out.print("请输入整数:");
int d=sc.nextInt();
b=insert2(a,d);
for(int i=0;i<b.length;i++)
System.out.print(b[i]+" ");
System.out.println();
}
//冒泡
public static int[] insert1(int[] a,int c){
int[] b=new int[a.length+1];
for(int i=0;i<a.length;i++)
b[i]=a[i];
b[a.length]=c;
for(int i=a.length;i>0;i--)
if(b[i]<b[i-1]){
int tem=b[i];
b[i]=b[i-1];
b[i-1]=tem;
}
return b;
}
//直接插入
public static int[] insert2(int[] a,int c){
int[] b=new int[a.length+1];
for(int i=0;i<a.length;i++)
b[i]=a[i];
for(int i=0;i<a.length;i++)
if(c<b[i]){
for(int j=b.length-1;j>i;j--)
b[j]=b[j-1];
b[i]=c;
break;
}
return b;
}
}