java 实现插入排序

作者: Python高效编程 | 来源:发表于2019-02-15 22:16 被阅读3次

插入排序适合于部分有序序列和小规模的数据。其平均时间复杂度为 O(N^2),空间复杂度为 O(1),并且为稳定排序。

插入排序将待排序序列分为有序区 (记为 S 区)和无序区(记为 R 区)。以从小到大的顺序为例,每次从 R 区弹出一个元素 O,要将元素 O 插入到 S 区中恰当位置。从 S 区最右端开始,依次比较 S 区元素与元素 O 的大小。如果元素O 比 S 区元素小,就将 S 区元素后移一位。如果元素 O 大于 S 区元素,就在该元素右边一位插入元素 O。

public static void insertionSort(int[] x) {
        int N = x.length;
        for (int i = 1; i < N; ++i) {
            int value = x[i];
            int j = i - 1;
            for (; j >= 0; --j) {
                if (x[j] > value) {
                    x[j + 1] = x[j];
                } else {
                    break;
                }
            }
            x[j + 1] = value;
        }
    }

演示:

    public static void main(String[] args) {

        int[] b = {3, 12, 17, 2, 19, 34, 91};
        insertionSort(b);
        for (int value: b)
            System.out.printf("%d ", value);
    }

输出:2 3 12 17 19 34 91

相关文章

  • java快速学习排序---插入排序

    1.java实现插入排序 (1)、图解插入排序 (2)、插入排序的思想 (3)、插入排序的代码实现

  • 数据结构&算法(一)

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

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

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

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

  • (306)排序-java实现的选择/插入/希尔排序

    引言 用java实现的选择排序、插入排序、希尔排序。 代码(java) 运行结果

  • Java 实现插入排序

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

  • 插入排序java实现

    //插入排序//基本思想://在要排序的一组数中,假定前n-1个数已经排好序,//现在将第n个数插到前面的有序数列...

  • Java 实现插入排序

    public class InsertSortNumber { public static void main(S...

  • Java实现插入排序

    插入排序(Insertion Sort),是一种简单直观并且稳定的排序算法。 从前到后取每个元素和之后的元素进行比...

  • 插入排序java实现

    插入排序,就是将数组中的一个个元素插入到已经排好序的数组中. 代码实现: 上面那个是我自己写的,和书上写的还是有一...

网友评论

    本文标题:java 实现插入排序

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