【排序】2.插入排序

在一个有序的序列中,插入新的数据,用到的排序方法

每步将一个待排序的记录,按关键码值的大小插入前面一排序好的文件的适当位置上,直到全部插完为止

分类:直接插入排序

    折半插入排序:将直接插入排序寻找插入位置的方法改为折半比较,经过一次比较,可以排除一

            半记录,将可能的插入区间减小了一半

    希尔排序:分组后的排序通常采用直接插入法

今天只写直接插入排序,直接插入排序对基本有序的数组排序效率很高

    public static void selectsort(int a[]){
        if(a==null||a.length<2){
            return;
        }
        for (int i = 1; i < a.length; i++) {
            for (int j = i; j > 0; j--) {//内循环逐渐将待排数据插入已排记录
                if(a[j]>a[j-1]){
                    int n=a[j];
                    a[j]=a[j-1];
                    a[j-1]=n;
                }
            }
        }
    }    

是一种稳定的排序算法

时间复杂度:O(n2)

空间复杂度:O(1)

posted @ 2017-10-22 09:37  chain155  阅读(74)  评论(0)    收藏  举报