int[] array = new int[10];
//生成随机数对象
Random random = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = random.nextInt(50);
System.out.print(array[i]+" ");
}
System.out.println("\n排序后:");
int temp;//定义临时变量
int j;
for (int i = 1; i < array.length; i++) {
//保存临时变量
temp = array[i];
for (j = i- 1; j >=0 && array[j]>temp; j--) {
//数组元素交换
array[j+1] = array[j];
}
//在排序位置插入数据
array[j+1] = temp;
}
//输出
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+"\t");
}
//插入算法原理:
插入排序是将一个记录插入到有序数列中,使得到的新序列仍然有序。
将n个有序数存放在数组a中,要插入的数为x,首先确定x插在数组中的位置p,数组中p之后的元素都向后移一个位置,空出a(p),将x放入a(p),这样既可实现插入后数列仍然有序。
如图所示:
转载于:https://blog.51cto.com/mazongfei/1907011