package net.okren.java.sort;
import java.util.*;
public class ShellSort {
public static void shellSort(Comparable[] data){
int j;
for(int gap = data.length / 2; gap > 0; gap /= 2){
for(int i = gap; i < data.length; i++){
Comparable temp = data[i];
for(j = i; j >= gap && temp.compareTo(data[j - gap]) < 0; j -= gap){
data[j] = data[j - gap];
}
data[j] = temp;
}
}
}
public static void main(String[] args){
Random r = new Random();
Comparable[] data = new Comparable[20];
for(int i = 0; i < data.length; i++){
data[i] = r.nextInt(data.length);
}
for(int i = 0; i < data.length; i++)
System.out.print(data[i] + " ");
shellSort(data);
System.out.println();
for(int i = 0; i < data.length; i++)
System.out.print(data[i] + " ");
}
}
分享到:
相关推荐
Java实现希尔排序.rar
主要介绍了使用Java实现希尔排序算法的简单示例,希尔排序可以被看作是插入排序的一种更高效的改进版本,需要的朋友可以参考下
希尔排序 希尔排序希尔排序希尔排序希尔排序希尔排序希尔排序希尔排序
该资源提供了一份全面的指南,介绍了如何在Java中实现希尔排序。文档中涵盖了希尔排序的基本概念,包括如何对数组进行排序以及如何在Java中实现希尔排序。此外,文档还包括一个逐步指南,介绍如何在Java中实现希尔...
问题:现有一段程序S,可以对任意n个数进行排序。如果现在需要对n^2个数进行排序,最少需要调用S多少次?只允许调用S,不可以做别的操作。我们用希尔排序来做解决这个
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
希尔排序 希尔排序.java 使用Java实现
希尔排序(Shell Sort)是插入排序的一种,是针对直接插入排序算法的改进,是将整个无序列分割成若干小的子序列分别进行插入排序,希尔排序并不稳定。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
用java语言实现冒泡排序、插入排序、堆排序、快速排序、归并排序、希尔排序、桶排序,并且对各种排序算法进行性能的比较。
快速排序、归并排序、希尔排序、冒泡排序、选择排序、插入排序等8中排序方式原理分析java实现
希尔排序代码,其中是希尔排序的代码部分,又不知道的可以进来看一下
NULL 博文链接:https://128kj.iteye.com/blog/1662282
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)
希尔排序Java语言的易懂解释,本人Google搜索求得最佳答案,希望可以与朋友分享,给同样疑惑的朋友带来帮助。
希尔排序
java实现插入排序,交换排序。插入排序包括直接插入排序,折半插入排序和希尔排序。交换排序包括冒泡排序。
八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...
详解Java常用排序算法-希尔排序