第一种:依次与有序数组中的每个数进行比较,然后找到位置之后,定义一个新的数组,该信数组的长度加一,再使用system.arraycopy将于数组copy到新数组!import java.util.Arrays;
import java.util.Scanner;
public class Sort {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int nums[] = new int[10];
System.out.println("请输入一组数字(不超过10个数字):");
for(int i =0 ;i
int j = in.nextInt();
nums[i]=j;}
bubblesort(nums);
Output(nums);
System.out.println("请从键盘输入一个数!");
int a = in.nextInt();
nums=insert(a,nums);
System.out.println("插入数字之后的排序为:");
Output(nums);
}
public static void bubblesort(int [] nums) {//对数组进行冒泡排序
for(int i =0;i
for(int j=0;j
if(nums[j]>nums[j+1])
{
int temp = nums[j];
nums[j] =nums[j+1];
nums[j+1]=temp;
}
}
}
}
public static int[] insert(int a,int [] nums){//进行插入操作
int index = 0;
for(int i = 0;i
if(a>=nums[i]){
index++;}
}
int[] newArray = new int[nums.length + 1];
newArray[index] = a ;
System.arraycopy(nums, 0, newArray, 0 , index );
System.arraycopy(nums, index, newArray, index + 1 , nums.length - index);
return newArray ; //返回新数组
}
public static void Output(int [] nums){
for(int j = 0;j
System.out.print(nums[j]+" ");
}
System.out.println();
}
}
第二种方法:只是查找时略有不同,是用的是二分查找的思想: