数据结构与算法之希尔排序

希尔排序则是通过添加一个步长的概念,每次把当前元素与增加步长后的元素比较,如果交换则交换.然后再次增加步长去比较,这个过程与插入排序一样.希尔排序与插入排序的

区别在于希尔排序通过步长将数组划分为子数组,将子数组通过插入排序.而步长也要不断的递减,直到步长是1此时就退化为插入排序.

这个算法最好情况下时间复杂度:O(n)平均情况下时间复杂度:O((nlog(n))^2)

以下代码提供一个测试方法.

Original: https://www.cnblogs.com/zumengjie/p/16157441.html
Author: 顶风少年
Title: 数据结构与算法之希尔排序

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588897/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 什么是拦截器?拦截器如何配置?

    今天这篇文章来介绍一下拦截器在SpringBoot中的如何自定义及如何配置的,拦截器的具体作用和应用场景。 SpringBoot版本 本文基于的Spring Boot的版本是2.6…

    Java 2023年6月8日
    092
  • Spring常用工具方法备忘录

    1:加载配置文件 Resource resource = new ClassPathResource("log4j.properties"); Properti…

    Java 2023年5月30日
    066
  • 项目摘抄

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/spongie/p/16480535.htmlAutho…

    Java 2023年6月7日
    0108
  • 2022保研经历-有删减

    2022 保研经历 我也知道大家仅仅是想看题目而已。 恕我直言,那些 排版混乱 ,看起来讲了很多,实际上既没有提供面试题目,也没有提供备考经验,反而只感动自己、像记流水账、对别人没…

    Java 2023年6月7日
    066
  • 解决Mybatis-plus高版本不向后兼容的问题

    mybatis-plus插件后面的版本没有兼容低版本。即:不存在低版本中EntityWrapper这个类了。而该类采用数据库表真实字段名作查询条件,这样硬编码形式确实不友好,比如如…

    Java 2023年6月5日
    078
  • SpringCloud微服务实战——搭建企业级开发框架(三十二):代码生成器使用配置说明

    一、新建数据源配置 因考虑到多数据源问题,代码生成器作为一个通用的模块,后续可能会为其他工程生成代码,所以,这里不直接读取系统工程配置的数据源,而是让用户自己维护。 参数说明 数据…

    Java 2023年6月9日
    075
  • Ubuntu中安装redis

    第一种方式在线安装首要前提安装c语言编译环境,命令如下:$sudo apt-get install gcc 安装完成后可以输入$gcc –version查看版本 1、获…

    Java 2023年6月9日
    095
  • spring cloud(二)简单快速的实现负载均衡的功能

    上篇参考:Spring Cloud快速使用教程(一) 在快速搭建Spring Cloud我们如果要简单快速的使用负载均衡可以如下实现 以下是实现示例: 使用Spring Cloud…

    Java 2023年5月30日
    080
  • 使用 sed 处理文本文件

    sed 是一款 GNU 流编辑器,可以按照指定的规则去处理文本文件或流,其强大的功能使用户在命令中快捷地修改文本文件成为可能。 它不会修改文件,除非使用shell重定向来保存结果。…

    Java 2023年6月7日
    0108
  • 关于Springboot配置多数据源,这篇笔记太详细了!

    关于springboot配置多数据源,整理了这篇笔记,分享给有需要的小伙伴们,视频看的动力节点王鹤老师讲的springboot 目录结构 1. DataSourceConfigur…

    Java 2023年6月7日
    076
  • 3、spring+mybatis关联映射(无mapper实现类)+idea+maven

    该工程采用spring+mybatis的关联映射,动态sql,sql片段实现 1、搭建项目结构如下 2、配置项目的pom.xml文件中的依赖 1 <?xml version=…

    Java 2023年6月13日
    088
  • 在Nginx下部署SSL证书并重定向至HTTPS

    步骤一:下载 Nginx 版证书文件,解压以后可以看到一个 .key 文件和 .crt/.pem 文件 步骤二:上传证书。把上面的 .key 文件和 .crt/.pem 文件上传到…

    Java 2023年5月30日
    085
  • entitybuilder–一个简单的业务通用框架

    关于业务通用框架的思考 业务系统是千差万别的,例如,保存、更新和删除订单,或者保存订单和保存客户,走的根本不是一个流程。但是,它们还是有共同点,它们的流程大致可以分成下面的几个部分…

    Java 2023年6月13日
    072
  • mybatisPlus

    如果有lombok的话,@Date代表getSetToStringHashCodeEquals有参无参方法 基本的CURD 常用注解 Original: https://www.c…

    Java 2023年6月13日
    068
  • 【笔记整理】SpringBoot集成腾讯云短信

    前言 记录一下最近使用SpringBoot基础腾讯云里的短信产品功能的体验。 1、腾讯云申请开通短信服务。 2、配置短信内容:分别创建签名、模板和群发短信。 3、使用SpringB…

    Java 2023年6月5日
    081
  • Java 并发编程生产应用场景及实战

    背景介绍 为什么需要学习 Java 并发? 从提升性能角度来说 提升了对CPU的使用效率:目前生产的服务器大多数都是多核,标配的机器都是 8C/16G。操作系统会将不同的线程分配给…

    Java 2023年6月15日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球