美文网首页
Java 插入排序

Java 插入排序

作者: 徘徊0_ | 来源:发表于2022-04-20 14:28 被阅读0次

插入排序 O(n^2)

插入排序(Insertion Sort)的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。是稳定的排序方法。

  • 时间复杂度
    1,平均和最坏情况下的,时间复杂度为:O(n^2),从下面代码可以看出,是两个嵌套的for循环
    ps:(最坏的O(n^2)情况就是,每个数都需要跟前面的数进行交换);
    2,最好情况下的时间复杂度为:O(n)(当前序列已排好序情况下);

  • 排序思路
    1、从头开始,往左侧对比,如果当前比左侧数小,则交换位置.
    2、经过步骤1,当前数的左侧一定是 有序的 .
    3、如果 当前数 > 左侧数 (左侧已经有序), 那么直接跳出内层循环,继续下次即可.

代码实现:

private static void insertSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }

        System.out.println("排序前: " + Arrays.toString(arr));


        //1, 从角标为1 开始
        for (int i = 1; i < arr.length; i++) {

            //2,往左侧 找到比自己小的数,形成从大到小有序数列.
            for (int j = 0; j < i; j++) {

                //3,如果此时,右侧 > 左侧(左侧已经有序) ,则跳出循环
                if (arr[i] > arr[j]) {
                    break;
                }

                //4,交换位置
                if (arr[j] > arr[i]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }

        }

        System.out.println("排序后: " + Arrays.toString(arr));
    }

从代码可以看出,大致思路是将数组中的每一个元素跟他前面所有的元素相比,如果 小就交换位置,循环完所有的数据。

相关文章

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

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

  • 常见排序的java实现

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

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

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

  • 数据结构&算法(一)

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

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

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

  • Java 实现插入排序

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

  • JAVA插入排序

    一,插入排序介绍 插入排序是基于比较的排序。所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元...

  • java 插入排序

    插入排序原理很简单,将一组数据分成两组,我分别将其称为有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元...

  • java插入排序

    public class Demo4 { public static void main(String[] arg...

  • 插入排序(Java)

    插入排序,做个很形象的比喻,插入排序就是打扑克抓牌一样,每次都把牌插入有序的手牌中,使之继续保持有序。插入排序的...

网友评论

      本文标题:Java 插入排序

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