插入排序

public void insertSort(int[] a){
//5,4,3,2,1
//插入排序比选择排序慢一点
for (int i = 1; i < a.length; i++) {
int insertVal=a[i];
int insertIndex=i-1;//要插入的这个数的前面一个数
while (insertIndex>=0&&insertVal<a[insertIndex]){
//如果从大到小,把小于改成大于就可以了
a[insertIndex+1]=a[insertIndex];
insertIndex--;
}

a[insertIndex+1]=insertVal;


/*System.out.println("第一轮过后~");
System.out.println(Arrays.toString(a));*/
}
System.out.println(Arrays.toString(a));
}
//整体思路就是有一个小括号,有序的往里面添加元素
//index就像指针,index>=0就能保证val与小括号里面的数都比较了一遍。
//a[index+1]=a[index]就是数组往后挪的代码表示方法,为前面腾出一个空间,这个空间用来放val
//如果跳出了while循环就说明找到了一个比val小的数,然后把这个数放到此时index所指的后面一个空间

 

posted @ 2021-07-29 14:16  朱在春  阅读(31)  评论(0编辑  收藏  举报