插入排序
简单流程介绍
n为数组的长度。
首先将数组的第一个元素当成有序的序列(必然有序)
然后将后面的数组遍历,挨个跟有序序列内的数组进行对比,从最后往前对比。
遍历的值称之为目标移动值target
如果target值比有序序列对应的值大,则停止对比,将值插入该有序序列值之后。如果小,则将有序序列对应值向后移一位,继续向前比对。
算法复杂度
稳定
空间复杂度O(1)
时间复杂度O(n2)
最差情况:反序,需要移动n*(n-1)/2个元素
最好情况:正序,不需要移动元素
算法代码
import java.util.*;
public class InsertionSort {
public int[] insertionSort(int[] A, int