希尔排序——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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年03月19日 13时06分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
的流程图做完后如何保存_2019超火的半永久眉是哪款?做完后我们如何护理?...
2019-04-21
去除logo 高德地图api_深圳品牌logo升级如何保持原型的同时更具创新?
2019-04-21
二重积分转换成极坐标_二重积分转换极坐标r的范围如何确定?
2019-04-21
python中倒背如流_八字基础知识--倒背如流篇
2019-04-21
以太坊地址和公钥_以太坊地址是什么
2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题
2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置
2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析
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
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