基本思想:每一步将一个待排序的记录,按其顺序码大小插入到前面已经排序的子序列的合适位置(从后向前找到合适的位置后),直到全部插入顺序完为止。
分析:
34 4 56 17 90 65
以第一个数34为基准(i是下标)
第一轮i=1:34和4比较,4比34小,将34往后移,4(称作操作数)存在另一个变量temp中
34 34 56 17 90 65
4 34 56 17 90 65
第二轮i=2:4 34 56 17 90 65(34和56比,不用换)(操作数是56),和上一个数34比较
第三轮i=3:4 34 56 56 90 65(操作数是17)和上一个数56比较
4 34 34 56 90 65 (17再和34比较)
4 17 34 56 90 65
第四轮i=4:4 17 34 56 90 65(操作数是90)和上一个数56比较
第五轮i=5:4 17 34 56 90 90(操作数是65)和上一个数90比较
4 17 34 56 65 90(操作数是65)和上上一个数56比较
public class Exerse2{
public static void main(String[] args){
int[] arr={34,4,56,17,90,65};
//控制轮数 5轮
for(int i=1;i<arr.length;i++){
int temp=arr[i];
// int j=0;//j是操作数temp与前一个数进行比较
for(int j=i-1;j>=0;j--){
if(arr[j]>temp){
arr[j+1]=arr[j];
}
else{
break;
}
if(arr[j]!=temp){
arr[j]=temp;
}
}
}
for(int i:arr){
System.out.println(i);
}
}
}