美文网首页
排序-插入排序

排序-插入排序

作者: KeDaiBiaO1 | 来源:发表于2017-10-09 16:40 被阅读0次

插入排序比较适用于 有序的输入

插入排序是和整理纸牌的时候是一样的
当摸一张牌的时候,把当前这张牌插入到指定位置

可以拿这张牌的值和前面的比较,如果比前面的牌小则和前面的牌交换

此时j-1 ,当前牌索引也因交换-1
当出现当前牌大于前面的牌(因为前面的牌从小到大排序,出现大于则已经到正确的位置了)则跳出

@Test
    public void test(){
        int[] a = {4, 2, 5, 3, 1, 0};
        sort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ",");
        }
    }
    public void sort(int[] a){
        for (int i = 1; i < a.length; i++) {
            for (int j = i; j > 0 && less(a[j], a[j - 1]); j--) {
                exch(a, j, j-1);
            }
        }

    }
    
    private boolean less(int i, int j) {
        return i > j ? false : true;
    }

    private void exch(int[] a, int m, int n) {
        int tmp = a[m];
        a[m] = a[n];
        a[n] = tmp;
    }   

相关文章

  • 算法-插入排序

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

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

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

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

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

  • 算法(排序)

    一、内部排序 1、插入排序—直接插入排序(Straight Insertion Sort) 2、插入排序—希尔排序...

  • Java排序算法

    插入排序 直接插入排序 折半插入排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 其他排序 二路...

  • 一遍文章搞定插入排序-java版

    插入排序 1.1 插入排序的基本介绍 插入排序属于内排,就是以插入的方式来达到排序的目的 1.2 插入排序思想 将...

  • 排序(新排版)

    冒泡排序 插入排序 二分插入排序 希尔排序 选择排序 快速排序

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • Java学习记录(常用 算法 排序 )

    排序算法的分类如下: 1.插入排序(直接插入排序、折半插入排序、希尔排序);2.交换排序(冒泡泡排序、快速排序);...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

网友评论

      本文标题:排序-插入排序

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