首页 > 代码库 > 插入排序法
插入排序法
插入排序:(我们假设数据列(D0,D1,D2,…DN))中,“已排序部分”是D0~Di-1。
“待排序部分”的起始元素是Di(i大于等于1小于等于n),排序过程如下:
- 令k=0;
- 当k<i,执行步骤3~4
- 当Dk>Di时,退出循环操作
- k加1(为了和下一个数据做比较)
- 把Di的值带入临时变量W
- Dk~Di向后移动一位
- 把W的值带入Dk
public class Sort {
public static void main(String[] args) {
int[] a = new int[10];
for (int i = 0; i < a.length; i++) {
int b = (int) (Math.random() * 100);
a[i] = b;
}
System.out.println("排序前:");
for (int j = 0; j < a.length; j++) {
System.out.print(a[j]+" ");
}
System.out.print("\n");
insertSort(a);
System.out.println("排序后:");
for (int k = 0; k < a.length; k++) {
System.out.print(a[k]+" ");
}
}
public static int[] insertSort(int[] b){
for(int i=0;i<b.length;i++){
int currentValue = http://www.mamicode.com/b[i];
int position = i;
for(int j=i-1;j>=0;j--){
if(b[j]>currentValue){
b[j+1]=b[j];
position-=1;
}else{
break;
}
}
b[position]=currentValue;
}
return b;
}
}
插入排序法