`
gds718
  • 浏览: 10000 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
社区版块
存档分类
最新评论

希尔排序java版

阅读更多
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代码实现: ```java public class ShellSort { public static void shellSort(int[] arr) { int len = arr.length; // 定义增量序列,例如初始增量为len/2 int gap = len / 2; ...

    希尔排序(java)

    在Java中,希尔排序的实现通常包括以下几个关键步骤: 1. **增量序列的选择**:希尔排序的效率很大程度上取决于增量序列的选择。经典的增量序列是Hibbard序列、Sedgewick序列或Knuth序列。例如,可以使用Hibbard...

    分别使用Java和Python实现希尔排序算法

    希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:分别使用Java和Python实现希尔排序算法 希尔排序:...

    希尔排序java.java

    希尔排序

    希尔排序算法Java简单解释

    在Java中实现希尔排序,我们可以定义一个希尔排序的函数,接受一个整型数组作为参数,然后按照上述步骤进行排序。代码如下: ```java public class ShellSort { public static void sort(int[] arr) { int len = ...

    希尔排序java.zip

    在Java中,希尔排序可以通过定义一个希尔排序方法,接收一个整型数组作为参数,然后根据上述步骤实现排序。具体代码如下(使用Sedgewick增量序列): ```java public class ShellSort { public static void shell...

    算法可视化系列——排序算法——希尔排序

    在`AlgorithmShellSort.java`这个文件中,我们可以预期看到希尔排序的具体实现。通常,Java代码会包含一个名为`shellSort()`的函数,它接收一个整数数组作为参数,并对其进行希尔排序。以下是希尔排序的基本步骤: ...

    希尔排序。java

    希尔排序代码,其中是希尔排序的代码部分,又不知道的可以进来看一下

    java算法——希尔排序

    按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...

    希尔排序基本思想

    5. 实现方式:希尔排序可以使用各种编程语言实现,如C、C++、Java等。在C语言中,可以通过编写函数来实现希尔排序,主要涉及到数组的操作和循环控制。 6. 应用场景:希尔排序适用于需要快速排序但对稳定性要求不高...

    [Java算法-排序]希尔排序.java

    该资源提供了一份全面的指南,介绍了如何在Java中实现希尔排序。文档中涵盖了希尔排序的基本概念,包括如何对数组进行排序以及如何在Java中实现希尔排序。此外,文档还包括一个逐步指南,介绍如何在Java中实现希尔...

    java版冒泡排序,插入排序,堆排序,快速排序,归并排序,希尔排序,桶排序

    希尔排序是插入排序的一种优化版本,通过设定一个增量序列,将待排序的数组按照增量分成多个子序列,对每个子序列进行插入排序,最后减小增量,直至为1,整个数组有序。这种方法减少了元素移动的次数,提高了排序...

    希尔排序.java 使用Java实现

    希尔排序 希尔排序.java 使用Java实现

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    希尔排序

    `ShellSort.java` 文件可能是实现希尔排序的Java代码示例。在该文件中,可以看到以下关键部分: - 定义间隔序列:这通常通过定义一个方法来实现,根据所选的序列生成一系列间隔。 - 插入排序:希尔排序的核心是插入...

    希尔排序介绍和java代码实现

    希尔排序算法详解与 Java 代码实现 希尔排序是一种改进的插入排序算法,也被称为缩小增量排序。它通过将待排序的数据按照一定的增量分组,对每个分组进行插入排序,然后逐渐缩小增量,再次对分组进行插入排序,直至...

    Java实现希尔排序.rar

    在Java中实现希尔排序,你需要创建一个希尔排序的函数,接受一个整数数组作为参数。函数内部可以定义一个增量序列,然后用for循环控制间隔的减小,每次间隔变化时,遍历整个数组,根据当前间隔将每个元素看作子序列...

    详解Java常用排序算法-希尔排序

    在 Java 中,希尔排序可以使用以下代码实现: ```java public class Shell { public static void shellSort(int[] arr) { int n = arr.length; for (int gap = n / 2; gap &gt; 0; gap /= 2) { for (int i = gap; ...

    快速排序、归并排序、希尔排序、冒泡排序、选择排序等8中排序方式原理分析java实现

    这里我们将深入探讨快速排序、归并排序、希尔排序、冒泡排序、选择排序以及插入排序这六种经典的排序算法,并通过Java语言来实现它们。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是基于分治策略的一种高效...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

Global site tag (gtag.js) - Google Analytics