插入排序
算法思想
插入排序的基本思想是:把n个待排序的元素看出一个有序表和一个无序表,开始是有序表只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
/**
* Created by 胡歌的小迷弟 on 2019/9/25 16:12
*/
public class InsertSort {
public static void main(String[] args) {
int a[]={3,9,-1,10,-2};
insertSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void insertSort(int[] arr) {
int insertVal = 0;
int insertIndex = 0;
//使用for循环来把代码简化
for(int i=1;i<arr.length;i++){
insertVal=arr[i];
insertIndex=i-1;
while(insertIndex>=0&&insertVal<arr[insertIndex]){
arr[insertIndex+1]=arr[insertIndex];
insertIndex--;
}
if(insertIndex!=i+1){
arr[insertIndex+1]=insertVal;
}
//System.out.println("第"+i+"轮插入");
//System.out.println(Arrays.toString(arr));
}
}
}