美文网首页
插入排序算法(Java版)

插入排序算法(Java版)

作者: lkmc2 | 来源:发表于2018-01-08 22:49 被阅读14次

插入排序将数组分成已排序和未排序两个部分,每次都抽一个未排序的数出来,跟已排序的部分进行比较,找到合适的位置插入,然后那个数就变成了已排序的,之后继续抽一个未排序的数出来,再跟已排序的数一 一比较,一直循环到没有未排序的数为止。

插入排序的平均时间复杂度为O(n^2) ,最好时间复杂度为O(n),最差时间复杂度为O(n^2)。

/**
 * Created by lkmc2 on 2018/1/8.
 */
public class InsertSort {

    public static void insertSort(int[] array) {
        //因为第0个元素默认是已排序元素,抽取第一个未排序元素,其i下标从1开始
        for (int i = 1; i < array.length; i++) {
            //存储当前位置的值
            int value = array[i];
            int j;
            //将第一个未排序元素分别与已排序元素进行对比(逆序),选择合适的位置插入
            for (j = i; j > 0 && array[j - 1] > value; j--) {
                //j位置的元素向后移动
                array[j] = array[j - 1];
            }
            //将当前位置的值插入到j位置
            array[j] = value;
        }
    }

    public static void main(String[] args) {
        int[] array = {7,4,3,9,2};

        insertSort(array); //插入排序

        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}
运行结果

相关文章

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • java 实现排序算法之「插入排序」

    java 实现排序算法系列 这是 Java 实现排序算法的第三篇文章——插入排序算法。插入排序可以说成是「一类」简...

  • 插入排序算法(Java版)

    插入排序将数组分成已排序和未排序两个部分,每次都抽一个未排序的数出来,跟已排序的部分进行比较,找到合适的位置插入,...

  • 排序算法(二):希尔排序

    希尔排序是插入排序的优化版,其算法表示如下:

  • 算法-插入排序

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

  • 希尔排序(Shell Sort)

    1. 算法描述 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不...

  • 程序兵法:插入排序算法 Java 源版

    《程序兵法: Java 源码的插入排序算法 (二)》 文章工程: JDK 1.8 工程名:algorithm-co...

  • 程序兵法:插入排序算法 Java 源版

    《程序兵法: Java 源码的插入排序算法 (二)》 文章工程: JDK 1.8 工程名:algorithm-co...

  • 希尔排序

    算法思想:希尔排序是插入排序的改进版,现将序列按照一定步长分为子序列进行插入排序,最后步长为1,整体再插入排序。代...

  • Java 实现插入排序

    本文介绍插入排序原理及 Java 语言实现。 目录 插入排序原理 代码实现版本一版本二单元测试 插入排序原理 从第...

网友评论

      本文标题:插入排序算法(Java版)

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