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),这样既可实现插入后数列仍然有序。
如图所示:
本文出自 “IT菜鸟” 博客,请务必保留此出处http://mazongfei.blog.51cto.com/3174958/1907011
原文地址:http://mazongfei.blog.51cto.com/3174958/1907011