package sort;
import java.util.Arrays;
public class Insertsort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {101,34,119,1};
System.out.println("未排序前的结果是");
System.out.println(Arrays.toString(a));
insertsort2(a);
System.out.println("排序后的结果是");
System.out.println(Arrays.toString(a));
}
//插入排序的主方法
public static void insertsort(int [] a) {
for(int i=1;i<a.length;i++) {
for(int j=0;j<i;j++) {
if(a[i]<a[j]) {
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
System.out.println("第"+i+"次插入的结果为"+Arrays.toString(a));
}
//System.out.println("最终的插入排序的结果为"+Arrays.toString(a));
}
//方法2
public static void insertsort2(int [] a) {
for(int i=1;i<a.length;i++) {
int insertvalue=a[i];
int insertindex=i-1;
while(insertindex>=0 && insertvalue<a[insertindex]) {
a[insertindex+1]=a[insertindex];
insertindex--;
}
if(insertindex+1!=i) {
a[insertindex+1]=insertvalue;
}
System.out.println("第"+i+"次插入的结果为"+Arrays.toString(a));
}
System.out.println("最终的插入排序的结果为"+Arrays.toString(a));
}
}