1.将一个记录插入到左边有序表中.
2.从数组的第二个的数据开始进行处理,如果该数据比前面数据小的话,说明需要将该数据往前移动
代码的实现:
public class InsertSort {
public static int[] insertSort(int[] a) {
int len = a.length;
for(int i=1;i<len;i++) {
for(int j=i;j>0;j--) {
/*
* 将记录插入到左边已经有序的数组中
*/
if(a[j]<a[j-1]) {
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}else {
break;
}
}
}
return a;
}
public static void main(String[] args) {
System.out.println("请输入数组的长度:");
Scanner scan = new Scanner(System.in);
int length = scan.nextInt();
int[] arr = new int[length-1];
for(int i=0;i<arr.length;i++) {
Random ran = new Random();
arr[i] = ran.nextInt(10000);
}
int[] b = insertSort(arr);
for(int i=0;i<b.length;i++) {
System.out.print(b[i]+" ");
}
}
}