希尔排序java代码_希尔排序及希尔排序java代码
由上图可看到希尔排序先约定一个间隔(图中是4),然后对0、4、8这个三个位置的数据进行插入排序,然后向右移一位对位置1、5、9进行插入排序按照此规律直到全部参与了排序。然后将间隔约定为4-1=3,然后继续进行如上的排序方法。具体过程如下:
9 1 2 3 0 4 5 7 6 8
Setp 1 经过间隔为4排序后变成 :0 1 2 3 6 4 5 7 9 8
Setp 2 经过间隔为3排序后变成 :0 1 2 3 6 4 5 7 9 8
Setp 3 经过间隔为2排序后变成 :0 1 2 3 5 4 6 7 9 8
Setp 4 经过间隔为1排序后变成 :0 1 2 3 4 5 6 7 9 8
减小间隔:对于大的数组一开始的间隔也应该比较大,而且间隔的缩减幅度也应该变大了,比如对于一个1000大小的数组进行排序可以采用间隔为:364、121、40、13、4、1,这里的间隔序列由knuth提出,数列以逆向的形式从1开始,通过递归表达式h=3*h+1来产生,初始值为1.(其他方法也可以产生序列)如下表
下面是希尔排序java代码
public static void shellSort(long[] arr , int eleNum){
int i,j;
long temp;
// 先求出h
int h = 1;
while(h
h = 3 * h + 1; // 1、4
while (h > 0) {
for(i = h ; i
// 对子数组进行排序
temp = arr[i];
j = i;
while(j > h-1 && temp <= arr[j-h]) {
arr[j] = arr[j-h];
j-=h;
}
arr[j] = temp;
}
h = (h-1)/3;
}
System.out.println(Arrays.toString(arr));
}
希尔排序java代码_希尔排序及希尔排序java代码相关推荐
- java 快速排序_面试必不可少的几大排序算法,你掌握了吗?
从上学那一刻起,老师就说排序算法很重要,面试的时候考官常会问道,要我们认真的学习,出去工作的学长学姐也说这么说的,那么为了能在面试中取得好的印象,我们很有必要对算法进行了解,以便在面试中取得好的印象, ...
- 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)
[toc] 冒泡排序 程序代码 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class B ...
- java冒泡测试代码_数据结构与算法—冒泡排序(Java实现)
[toc] 冒泡排序 程序代码package com.uplooking.bigdata.datastructure;import java.util.Arrays;public class Bubb ...
- java多线程异步调用别的系统接口代码_抢先准备,40个 Java 多线程面试题及答案大汇总!...
↑↑↑点上方蓝字关注并标⭐「IT技术思维」 一起培养顶尖技术思维 来源:程序员共成长(id:finishbug) 这些多线程的问题,有些来源于各大网站.有些来源于自己的思考.可能有些问题网上有.可能有 ...
- 基础贴吧java代码_原来你是这样的JAVA[01]-基础一瞥
1.Java是什么呢? Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性.跨操作系统的可移植性以及自动垃圾收集等服务的执行环境. 2.JDK 和 ...
- amd cpu不能在cmd环境下运行java代码_如何在Windows10中配置java的JDK环境
今天给大家分享一下如何配置java的JDK环境.操作步骤如下: 1.下载好 jdk 的安装文件,我下载的是 jdk-10.0.1_windows-x64_bin.exe 这个版本的安装文件: 2.使用 ...
- aixs1 生成java代码_通过axis1.4 来生成java客户端代码
1.首先下载axis-1.4所有的jar包, 2.我是直接打开cmd,进入到该jar包的目录下, 3.直接运行命令(运行这个命令之前要确定java的环境变量都已配置好): java -Djava.ex ...
- 关于equals的Java代码_与equals方法相关的Java代码
t3.equals(t3)是唯一具有与方法签名public boolean equals (Test testje)匹配的正确参数的行,因此它是程序中唯一实际调用该print语句的行. 这个问题旨在教 ...
- java幻灯片播放代码_简单常用的幻灯片播放实现代码
幻灯片自动播放图片是当前网站比较流行的一个展示方式.在网上我们能找到各种特效丰富的幻灯片插件和代码.这里项目需要,我自己做了一个简单的,就不详细讲解了,代码很简单.直接看效果图和代码吧. 所有代码 p ...
- java框架_这篇让你吃透Java集合框架!
作者:平凡希 cnblogs.com/xiaoxi/p/6089984.html 一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的 ...
最新文章
- 网络通道联调及SSH服务启动
- 算法6-1:哈希函数
- H5添加禁止缩放功能
- ORACLE中数据类型
- dem聚类只能成为一类
- 2-7 StatusStrip 控件
- Edge浏览器+百度翻译:识别图片类PDF中的文字并翻译
- Nginx工作原理和优化、漏洞
- MAC 安装JDK(附JDK下载地址)
- javascript Date format(js日期格式化)
- [WebGL入门]二十一,从平行光源发出的光
- 业务与信令-第5章VoLTE原理
- Sonatype Nexus: Recommended file descriptor limit is 65536 but count is 4096
- Android增强现实(三)-3D模型展示器
- 解决python的selenium打开edge浏览器,但是无法打开网页driver.get的方法
- Springboot 工具类@Value取不到值
- 无营业执照开通微信商家码0.38%费率商户自助提交步骤
- 目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用
- 王天羲:构建以客户中心的全整合企业
- 什么是大数据?大数据用来干嘛?
热门文章
- 吴恩达神经网络和深度学习-学习笔记-36-网络中的网络以及1×1卷积
- 吴恩达神经网络和深度学习-学习笔记-21-何时该改变开发集+测试集或指标
- python机器学习案例系列教程——优化,寻找使成本函数最小的最优解
- Ubuntu虚拟机环境下安装Python3.6
- basys3利用microblaze连接Pmod ad2
- springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
- SpringBoot:第一篇 新建spring boot 应用
- 用友u8采购发票如何取消审核
- 洛谷 P3807 【模板】卢卡斯定理
- Response实现文件下载