排序算法---直接插入排序

来源:互联网 发布:联通网络整合营销包括 编辑:程序博客网 时间:2024/06/05 21:53

算法思想

一群孩子一起站队列,现在需要他们从矮到高排。
老师就说话了:“从第一个开始,如果你比前面的高,你就不动;如果你比前面的矮,你就走到他前面,如此继续,直到你比你前面的高就不动了”。
老师的话就是最直观的插入排序思想。

即:
1. 找到插入元素。
2. 把元素插到合适的位置,即比前面的大,比后面的小。

直接插入排序

 public static void insertSort(int[] array) {        for (int i = 0; i < array.length; i++) {            int insert = array[i];            int pos = i;            //如果当前元素小于前一个元素,则交换位置,继续向前比较            while (pos > 0 && insert < array[pos - 1]) {                array[pos] = array[pos - 1];                pos--;                array[pos] = insert;            }        }    }

复杂度分析

最好情况:O(n)
最坏:O(n*n)
平均:O(n*n)

原创粉丝点击