import java.util.Arrays;
public class mnSum {
public static void main(String[] args) {
int[] arr= {11,2,34,23,44,35,36};
//排序前
System.out.println(Arrays.toString(arr));
int temp;
for(int i=1;i<arr.length;i++) {
temp=arr[i];
int j;
for( j=i-1;j>=0;j--)
{
if(temp<arr[j]) {
arr[j+1]=arr[j];
}else {
break;
}
}
arr[j+1]=temp;
}
//排序后
System.out.println(Arrays.toString(arr));
}
}
1.从第二个数开始往后遍历做为被插入数
2.定义j为带插入数前面的已排序的元素数目
3.从已排序的数字从后往前遍历依次与待插入数比较
4.如果待插入数小于前面的已排序数那么就把前面的插入数后移,然后空出一个位置给带插入数
5.注意for循环中的i++是要等到循环结束才会执行,假如直接break;那么就不会执行了
6,要特别注意这个j--的妙处