希尔排序——java
发布日期:2021-06-07 05:56:20 浏览次数:4 分类:技术文章

本文共 805 字,大约阅读时间需要 2 分钟。

希尔排序(最小增量排序)

时间复杂度:O(n*log2(n))~O(n2),平均时间复杂度大致是O(n√n)
空间复杂度:O(1)
不稳定
核心代码:

/** * 希尔排序(最小增量排序) * @author jin */public class ShellSort {
public void sort(){ int[] a={
2,3,5,4,6,1,7,0,9,8,11,10}; double d1=a.length; int tmp=0; while(true){ d1=Math.ceil(d1/2);//Math.ceil为向上取整,.round为四舍五入,.floor为向下取整 int d=(int) d1; for(int x=0;x
=0&&tmp

希尔排序是一组数,按某个增量d1(n/2)分为若干组,每组数进行直接插入排序;再用一个增量d2(n/2)分为若干组,每组数进行直接插入排序;当增量减为1时,进行直接插入排序,完成。

用到的知识点:
Math.ceil()为向上取整,
Math.floor()为向下取整,
Math.round()为四舍五入。
例:
Math.ceil(4.3)=5.0;
Math.floor(4.3)=4.0;
Math.round(4.3)=4.0;
(1)先对数组对半分,如果为奇数,则向上取整;
(2)然后通过直接插入排序对其进行排序;
(3)然后再返回来,执行步骤(1);
(4)当增量为1时,就跳出循环。
插入排序时,以d为一个周期,而不是以前的1为一个周期,即(2,3,6,5)这四个数,2和6为一组,进行插入排序;3和5为一组,进行插入排序,然后再四个数为一组,进行插入排序……

转载地址:https://blog.csdn.net/Levi_moon/article/details/51472576 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:简单选择排序——java
下一篇:直接插入排序——java

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月19日 13时06分26秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

hadoop 3.3 一直停留在running wordcount_蛋价持续下跌,今日跌破3.3元大关!深秋季节价格还能反弹吗?... 2019-04-21
的流程图做完后如何保存_2019超火的半永久眉是哪款?做完后我们如何护理?... 2019-04-21
去除logo 高德地图api_深圳品牌logo升级如何保持原型的同时更具创新? 2019-04-21
二重积分转换成极坐标_二重积分转换极坐标r的范围如何确定? 2019-04-21
python中倒背如流_八字基础知识--倒背如流篇 2019-04-21
以太坊地址和公钥_以太坊地址是什么 2019-04-21
linux查看wifi信号命令_linux – 获取WIFI信号强度 – 寻求最佳方式(IOCTL,iwlist(iw)等)... 2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题 2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置 2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析 2019-04-21
onmessage websocket 收不到信息_WebSocket断开重连解决方案,心跳重连实践 2019-04-21
hibernate mysql 缓存_hibernate和mysql的缓存问题,没辙了! 2019-04-21
abp框架 mysql_ABP框架使用Mysql数据库 2019-04-21
mysql树形递归删除_使用递归删除树形结构的所有子节点(java和mysql实现) 2019-04-21
linux mysql 不能连接远程_linux mysql 远程连接 2019-04-21
mysql $lt_mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件... 2019-04-21
PHP实现 bcrypt,如何使php中的bcrypt和Java中的jbcrypt兼容 2019-04-21
php8安全,PHP八大安全函数解析 2019-04-21
php基础语法了解和熟悉的表现,PHP第二课 了解PHP的基本语法以及目录结构 2019-04-21
matlab中lag函数用法,MATLAB movavg函数用法 2021-06-24