循环整个数组。在数组第二项开始,把数组第二项前面的项当做有序的数列,将数组第二项和 第一项比较,如果第二项比第一项小,则将第二项的数字存放在临时变量中,赋给,,,,
1 public class InsertSort { 2 public static void main(String[] args) { 3 int[] arr=new int[]{5,3,2,8,10,1,12,0}; 4 System.out.println(Arrays.toString(arr)); 5 insertSort(arr); 6 System.out.println(Arrays.toString(arr)); 7 } 8 9 public static void insertSort(int[] arr){ 10 //遍历所有的数字 11 for(int i=1;i<arr.length;i++){ 12 //如果当前数字比前一个数字小 13 if(arr[i]<arr[i-1]){ 14 //把当前遍历数字存起来 15 int temp=arr[i]; 16 int j; 17 //遍历当前数字前面所有的数字 18 for(j=i-1;j>=0&&temp<arr[j];j--){ 19 //把前一个数字赋给后一个数字 20 arr[j+1]=arr[j]; 21 } 22 //把临时变量赋给不满足条件的后一个元素 23 arr[j+1]=temp; 24 } 25 } 26 } 27 }