package MySort;
public class InsertSort {
public static void main(String[] args){
int[] R={5,4,3,2,1};
InsertSort is=new InsertSort();
is.insertSort2(R);
for(int i=0;i<R.length;i++){
System.out.println(R[i]);
}
}
public void insertSort1(int[] R){
for(int i=1;i<R.length;i++){//从第二个元素到最后,循环n-1次
if(R[i]<R[i-1]){//如果'<',则证明该元素小于有序区中的最后一个元素,需要进行插入操作
int temp=R[i];//把无序区中的第一个元素记录
int j=i; //从第i-1个元素起向前与temp进行比较
while(j>0&&temp<R[j-1]){
R[j]=R[j-1]; //把元素向右移动
j--;
}
R[j]=temp;//把元素插入合适的位置
}
}
}
public void insertSort2(int[] R){
for(int i=1;i<R.length;i++){
if(R[i]<R[i-1]){
int temp=R[i];
R[i]=R[i-1];
int j=i-1;//使用加操作
while(j>=0&&temp<R[j]){
R[j+1]=R[j];
j--;
}
R[j+1]=temp;
}//类似于书上的算法
}
}
}