美文网首页
p157算法2.2插入排序

p157算法2.2插入排序

作者: FiveZM | 来源:发表于2018-01-25 15:59 被阅读0次

public class Insertion {

public static void sort(Comparable[] a){//所有实现了Comparable接口的数组都可以使用插入排序
    
    int N = a.length;//数组的长度,便于遍历使用

    for(int i = 1; i<N;i++){//因为插入排序的思想是当前角标和前一个角标作比较,所以,外循环i的初始值为1,那么内循环中就可以和1角标前面的0角标比较了
                            //内循环中,j=i,出口判断条件为j>0,则j最小满足条件为1,那么他还可以与j-1=0角标作对比,
        for(int j = i;j>0;j--){
            if(less(a[j],a[j-1])){//如果a[j]小于a[j--],那么就交换j和j--值的位置
                exch(a,j,j-1);//调用自定义的交换方法
            }
        }
    }
}

private static void exch(Comparable[] a, int j, int i) {//调用自定义的交换方法
    Comparable temp = a[j];
    a[j] = a[i];
    a[i] = temp;
    
}

private static boolean less(Comparable v, Comparable w) {//v小于w的话返回真
    return v.compareTo(w) <0;
}

public static void main(String[] args) {
    Integer[] a = new Integer[]{888,494,110,12,154,123,456,356,486,576,16,654,23,451,};
    sort(a);
    for(int num : a){
        System.out.print(" "+num);
    }

}

}
插入排序比选择排序要快一点,插入排序只与左边作比较,而选择排序则只与右边作比较
算法学习来自<算法第四版>书籍

相关文章

  • p157算法2.2插入排序

    public class Insertion { }插入排序比选择排序要快一点,插入排序只与左边作比较,而选择排序...

  • 常见排序算法

    1 前言 2 排序基础2.1 选择排序2.2 插入排序 3 高级排序算法3.1 归并排序3.1.1 插入排序与归并...

  • 算法-插入排序

    算 法:插入排序算法时间复杂度: 插入排序算法描述 插入排序伪代码 插入排序实现 插入排序算法概述 插入排...

  • python 冒泡排序和选择排序算法

    插入排序算法 冒泡排序算法

  • c算法O(n)^2(一)

    选择排序 插入排序 优化插入排序算法

  • Chapter 2 Foundation of Algorith

    Chapter 2 插入排序 线性查找 选择算法 归并排序算法 二分查找算法 冒泡排序 插入排序 循环不...

  • 算法入门——插入排序、快速排序

    上篇文章学习了算法入门——冒泡排序、选择排序,这篇文章我们学习算法入门——插入排序。 插入排序 插入排序是在一组列...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 插入排序

    插入排序 插入排序(Insertion-Sort)是一种简单直观的排序算法。排序算法(英语:Sorting alg...

  • 排序算法(三)折半插入排序算法

    排序算法(三)折半插入排序算法 1.基本概念  折半插入排序(Binary-Insertion-Sort)是对插入...

网友评论

      本文标题:p157算法2.2插入排序

      本文链接:https://www.haomeiwen.com/subject/dfbvaxtx.html