插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
代码实现:
import java.util.Arrays;
public class TestDemo2 {
//插入排序法
//已经排好序的数组,用插入排序节省时间
public static void insertSort(int[]array){
for(int i = 0; i < array.length;i++){
//将a[i]向前移动,移动到前面一个值比它小,或者前面没有值了停下
for (int j = i;j >0;j--){ //j向前移,所以是j--
if (array[j] < array[j-1]){ //当后面的值<前面的值
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}else{
break;
}
}
}
}
public static void main(String[] args) {
//从第一值开始向前插入,后面的数字在向前插时,前面的数字一定已经排好序了,找一个位置将这个放入正确的位置
int []array = {11,8,3,17,5,6};
System.out.println("插入排序前:");
System.out.println(Arrays.toString(array));
System.out.println("插入排序后:");
insertSort(array);
System.out.println(Arrays.toString(array));
}
}
运行结果: