shellSort

稳定性:不稳定

时间复杂度:O(N^13~N^17)

空间复杂度:O(1)

由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以shell排序是不稳定的。

java 复制代码
public static void main(String[] args) {
    
    int[] array = {31,432,1,53,75,36,21,26,622,66,71 57};

    int gap = array.length;// 确定组数

    while(gap > 1) { // 当gap为1时,说明已经排序好了
        for(int i = gap; i < array.length; i++) {
            int j = i - gap;//分组
            while(j >= 0) {
                int tmp = array[i]
                if(array[i] < array[j]) { //交换
                    array[j + gap] = array[j];
                    array[j] = tmp;
                    j -= gap;
                }else {
                    break;//如果j+1元素比j大,说明j前面的元素已经都是有序的了
                }
            }
        }
    }

}
相关推荐
diudiu96289 分钟前
Maven配置阿里云镜像
java·spring·阿里云·servlet·eclipse·tomcat·maven
Yeats_Liao15 分钟前
MindSpore开发之路(四):核心数据结构Tensor
数据结构·人工智能·机器学习
Darken0319 分钟前
基于C语言的学习---if语句
c语言·学习·if语句
魔芋红茶21 分钟前
Netty 简易指南
java·开发语言·netty
fab 在逃TDPIE27 分钟前
Sentaurus TCAD 仿真教程(十)
算法
大学生资源网40 分钟前
基于springboot的万亩助农网站的设计与实现源代码(源码+文档)
java·spring boot·后端·mysql·毕业设计·源码
LiYingL41 分钟前
LAMIC:一种无需学习、布局可控的多参考图像生成方法
学习
小严家42 分钟前
Java基础教程大全完整学习路径
java·开发语言·学习
毕设源码-朱学姐42 分钟前
【开题答辩全过程】以 基于Java的电影推荐系统为例,包含答辩的问题和答案
java·开发语言
天赐学c语言1 小时前
12.19 - 买卖股票的最佳时机 && const的作用
c++·算法·leecode