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前面的元素已经都是有序的了
                }
            }
        }
    }

}
相关推荐
武子康4 小时前
Java-148 深入浅出 MongoDB 聚合操作:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化
java·数据库·sql·mongodb·性能优化·系统架构·nosql
珹洺4 小时前
Java-Spring入门指南(二十四)SSM整合HTML:解决CSS/JS静态资源被过滤问题
java·spring·html
2013编程爱好者4 小时前
计算时间复杂度
c++·算法·排序算法
巴里巴气4 小时前
第15题 三数之和
数据结构·算法·leetcode
小许学java4 小时前
数据结构-Map和Set
数据结构·算法·set·map·哈希表·哈希冲突·哈希桶
润 下4 小时前
C语言——深入解析C语言指针:从基础到实践从入门到精通(三)
c语言·开发语言·经验分享·笔记·学习·程序人生·其他
莫陌尛.4 小时前
SSM(Spring+SpringMVC+Mybatis)整合
java·spring·mybatis
焚 城4 小时前
UniApp中Flex布局学习
学习·uni-app
ANYOLY4 小时前
多线程&并发篇面试题
java·面试