代码如下:
public class insertSort {
public void print(int a[]){
for(int x: a){
System.out.print(x+" ");
}
System.out.println();
}
public void insertsort(int a[]){
for(int i=0;i<a.length-1;i++){//趟数,每趟插入第i+1个元素---待插入的数
int temp=a[i+1];//先把待插入的数备份到temp中
int j=i;
/*从i(有序子序列的最后一个位置)往前遍历,找一个位置j,让a[j]不大于temp;
同时若a[j]大于temp则让该数往后挪个位置*/
while(temp<a[j]){
a[j+1]=a[j];//若a[j]大于temp则让该数往后挪个位置
j--;
if(j<0){
break;
}
}
//经过上面的操作,j+1位置就是temp将要放置的
a[j+1]=temp;
}
print(a);
}
public static void main(String[] args) {
int a[]= {21,25,49,25,16,8,23,45,-3,4};
new insertSort().insertsort(a);
}
}