• 排序算法---直接插入排序


    稳定                    基于移动元素            

    适合于元素个数较少,基本有序的情况

    将关键字序列的第一个关键字看成一个有序的序列,然后将第二个插入到有序序列的合适位置,此时,有序序列长度加一

    一次将后面的关键字插入到有序子序列的合适位置,使得有序子序列的长度递增,直到待排序序列的元素插入完

        public static void insertSort(int[] array){
            //将第一个元素看成是已经有序的序列,从第二个元素开始,
            //如果当前元素大于等于已有序序列的随后一个元素,直接将当前元素放在已有序序列的尾部
            //如果当前元素小于已有序序列的随后一个元素,需要将当前元素插入已有序序列的合适位置
                //先记录当前元素,将大于当前元素的元素后移
            for(int i=1;i<array.length;i++){
                int temp = array[i];
                if(array[i]<array[i-1]){
                    int j=i-1;
                    for(;j>=0&&array[j]>temp;j--){
                        array[j+1] = array[j];
                    }
                    array[j+1] = temp;
                }
                listArray(array);
                
            }
            
        }

    最好:待排序序列有序 O(n)

    最坏、平均:O(n^2)

  • 相关阅读:
    jsp tag
    加密算法
    webpack4.x 使用
    vue部分知识点
    数据赋值处理
    Promise markdown版
    Promise-github版
    vuex简单介绍-官网
    vue-router-官网
    vue官方实例-分例-14-19
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9553530.html
Copyright © 2020-2023  润新知