package com.hym.test.algorithms;
public class ShellSort {
private int[] arrayTest = { 5, 26, 1, 783, 23, 2, 62, 9, 46 };
public void shellSort() {
int begin, end;
int temp;
int h = 1;
while (h <= arrayTest.length / 3) {
h = 3 * h + 1;
}
while (h > 0) {
for (end = h; end < arrayTest.length; end++) {
temp = arrayTest[end];
begin = end;
while (begin > h - 1 && arrayTest[begin - h] >= temp) {
arrayTest[begin] = arrayTest[begin - h];
begin -= h;
}
arrayTest[begin] = temp;
}
h = (h - 1) / 3;
}
}
public static void main(String[] args) {
ShellSort sort = new ShellSort();
sort.shellSort();
for (int i = 0; i < sort.arrayTest.length; i++) {
System.out.print(sort.arrayTest[i] + " ");
}
}
}
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
http://baike.baidu.com/view/178698.htm
分享到:
相关推荐
主要介绍了java 算法之希尔排序详解及实现代码的相关资料,需要的朋友可以参考下
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
该资源提供了一份全面的指南,介绍了如何在Java中实现希尔排序。文档中涵盖了希尔排序的基本概念,包括如何对数组进行排序以及如何在Java中实现希尔排序。此外,文档还包括一个逐步指南,介绍如何在Java中实现希尔...
详解Java常用排序算法-希尔排序
在Java中,希尔排序的实现通常涉及两个嵌套的循环,外层循环控制增量的减小,内层循环则执行分组内的插入排序。虽然希尔排序的增量序列没有固定的规则,但通过合理的选择,希尔排序仍然是一种高效的排序算法。
NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1867491
希尔排序Java语言的易懂解释,本人Google搜索求得最佳答案,希望可以与朋友分享,给同样疑惑的朋友带来帮助。
该源文件包括三种排序算法,实现效率教高,代码量也不大
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
主要为大家详细介绍了Java经典排序算法之希尔排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
用java语言实现冒泡排序、插入排序、堆排序、快速排序、归并排序、希尔排序、桶排序,并且对各种排序算法进行性能的比较。
八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
该工具包含有Java一些比较常见的排序算法和...排序算法包括:冒泡排序、选择排序 、插入排序、希尔排序、快速排序、归并排序、基数排序(桶排序) 查找算法包括:线性查找、二分查找、插值查询、斐波那契(黄金分割法)、
主要介绍了java数据结构与算法之希尔排序,结合实例形式分析了希尔排序的概念、原理、实现方法与相关注意事项,需要的朋友可以参考下
希尔排序的原理详见Java之希尔排序: https://blog.csdn.net/qq_43437122/article/details/105890206 代码如下: # author atguigu def shell_sort(arr_list): ''' 交换法,用希尔排序方法对列表进行排序 参数: ...
主要介绍了Java排序算法总结之希尔排序,较为详细的分析了希尔排序的原理与java的实现技巧,需要的朋友可以参考下
Java常用排序算法源码 稳定:冒泡排序、插入排序、归并排序和基数排序;不稳定:选择排序、快速排序、希尔排序、堆排序