class ArraySh{
private long[] theArray;
private int nElems;
public ArraySh(int max){
theArray=new long[max];
nElems=0;
}
public void insert(long value){
theArray[nElems]=value;
nElems++;
}
public void display(){
System.out.print("A=");
for(int j=0;j<nElems;j++){
System.out.print(theArray[j]+" ");
}
System.out.println();
}
public void ShellSort(){
int inner,outer;
long temp;
int h=1;
while(h<=nElems/3){
h=h*3+1;
}
while(h>0){
for(outer=h;outer<nElems;outer++){
temp=theArray[outer];
inner=outer;
while(inner>h-1&&theArray[inner-h]>=temp){
theArray[inner]=theArray[inner-h];
inner-=h;
}
theArray[inner]=temp;
}
h=(h-1)/3;
}
}
}
public class ShellSortApp {
public static void main(String[] args) {
int maxSize=20;
ArraySh arr;
arr=new ArraySh(maxSize);
for(int j=0;j<maxSize;j++){
long n=(int)(Math.random()*99);
arr.insert(n);
}
arr.display();
arr.ShellSort();
arr.display();
}
}
分享到:
相关推荐
下面是一个简单的希尔排序Java代码实现: ```java public class ShellSort { public static void shellSort(int[] arr) { int len = arr.length; // 定义增量序列,例如初始增量为len/2 int gap = len / 2; ...
在Java中,希尔排序的实现通常包括以下几个关键步骤: 1. **增量序列的选择**:希尔排序的效率很大程度上取决于增量序列的选择。经典的增量序列是Hibbard序列、Sedgewick序列或Knuth序列。例如,可以使用Hibbard...
希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:...
希尔排序
在Java中实现希尔排序,我们可以定义一个希尔排序的函数,接受一个整型数组作为参数,然后按照上述步骤进行排序。代码如下: ```java public class ShellSort { public static void sort(int[] arr) { int len = ...
在Java中,希尔排序可以通过定义一个希尔排序方法,接收一个整型数组作为参数,然后根据上述步骤实现排序。具体代码如下(使用Sedgewick增量序列): ```java public class ShellSort { public static void shell...
在`AlgorithmShellSort.java`这个文件中,我们可以预期看到希尔排序的具体实现。通常,Java代码会包含一个名为`shellSort()`的函数,它接收一个整数数组作为参数,并对其进行希尔排序。以下是希尔排序的基本步骤: ...
希尔排序代码,其中是希尔排序的代码部分,又不知道的可以进来看一下
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
5. 实现方式:希尔排序可以使用各种编程语言实现,如C、C++、Java等。在C语言中,可以通过编写函数来实现希尔排序,主要涉及到数组的操作和循环控制。 6. 应用场景:希尔排序适用于需要快速排序但对稳定性要求不高...
该资源提供了一份全面的指南,介绍了如何在Java中实现希尔排序。文档中涵盖了希尔排序的基本概念,包括如何对数组进行排序以及如何在Java中实现希尔排序。此外,文档还包括一个逐步指南,介绍如何在Java中实现希尔...
希尔排序是插入排序的一种优化版本,通过设定一个增量序列,将待排序的数组按照增量分成多个子序列,对每个子序列进行插入排序,最后减小增量,直至为1,整个数组有序。这种方法减少了元素移动的次数,提高了排序...
希尔排序 希尔排序.java 使用Java实现
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
`ShellSort.java` 文件可能是实现希尔排序的Java代码示例。在该文件中,可以看到以下关键部分: - 定义间隔序列:这通常通过定义一个方法来实现,根据所选的序列生成一系列间隔。 - 插入排序:希尔排序的核心是插入...
希尔排序算法详解与 Java 代码实现 希尔排序是一种改进的插入排序算法,也被称为缩小增量排序。它通过将待排序的数据按照一定的增量分组,对每个分组进行插入排序,然后逐渐缩小增量,再次对分组进行插入排序,直至...
在Java中实现希尔排序,你需要创建一个希尔排序的函数,接受一个整数数组作为参数。函数内部可以定义一个增量序列,然后用for循环控制间隔的减小,每次间隔变化时,遍历整个数组,根据当前间隔将每个元素看作子序列...
在 Java 中,希尔排序可以使用以下代码实现: ```java public class Shell { public static void shellSort(int[] arr) { int n = arr.length; for (int gap = n / 2; gap > 0; gap /= 2) { for (int i = gap; ...
这里我们将深入探讨快速排序、归并排序、希尔排序、冒泡排序、选择排序以及插入排序这六种经典的排序算法,并通过Java语言来实现它们。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是基于分治策略的一种高效...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...