直接插入排序 T=O(N^2)
基本思想:
将A[0]作为一个有序序列,然后将剩余n-1个元素依次插入该有序序列,
每插入一个元素后依然保持该序列有序,经过n-1次插入操作后可排序完成。
插入排序,在一般情况下,比冒泡排序快一倍,比选择排序快一点。
代码:
1 | public class InsertSortTest { |
插入排序的效率:
这个算法中,第一趟排序最多比较一次,第二趟排序最多比较两次,以此类推,最后一趟最多比较N-1次,
对于随机顺序的数据,插入排序也需要O(N^2)时间级,可是当数据基本有序,插入排序几乎只需要O(N)时间,
这对于把一个基本有序的文件进行排序是个简单有效的方法。
对于逆序排列的数据,每次比较和移动都会执行,所以插入排序不比冒泡排序快。