JAVA实现排序-希尔排序

原创 2018年04月17日 21:32:02

在取好增量之后,运用直接插入排序,详情请看https://blog.csdn.net/qq_36370187/article/details/79980179

package shell;



public class Shell {

public static void print(int[] arr){
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
System.out.println();
}

static void fun(int[] a){
int length = a.length;
int index;
//增量取值公式index=index/3+1,第一次是index=length/3+1
for(index=length/3+1; index>=1; index=index/3+1){
//直接插入排序
for(int i=index;i<length;i=i+index){
int temp = a[i];
int j;
for(j=i-index;j>=0&&temp<a[j];j=j-index){
a[j+index] = a[j];
}
a[j+index] = temp;
}
System.out.print("index="+index+",  ");
print(a);
if(index == 1){//最后一趟排序index必须等于1
break;
}
}
}
public static void main(String[] args) {
int[] arr = {49,38,65,97,76,13,27,49,55,4};
fun(arr);
}


}

【排序算法】希尔排序原理及Java实现

希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-04-27 09:19:55
  • 14139

八大排序算法 Java、Python、C++实现 -- 希尔排序

描述 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排...
  • baidu_35561918
  • baidu_35561918
  • 2016-08-04 11:07:21
  • 308

希尔排序:Java(最小增量排序)

基本思想: 基本思想:算法先将要排序的一组数按某个增量 d(n/2,n为要排序数的个数)分成若 干组,每组中记录的下标相差 d.对每组中全部元素进行直接插入排序,然后再用一个较小 的...
  • luojiusan520
  • luojiusan520
  • 2015-11-12 07:29:11
  • 694

Java八大排序算法之"希尔排序(最小增量排序)"算法

希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 ————...
  • www_wangjun
  • www_wangjun
  • 2017-06-15 15:58:36
  • 398

JAVA并发处理经验(四)并行模式与算法5:并行排序模式-希尔排序

一、前言 前面有冒泡排序引入奇偶性的冒泡排序 这里由插入排序,到希尔分组插入排序 二、插入排序 插入排序:将数据插入有序数列,默认第一个数据位有序数列。大值后移----小值找到合适位置 希尔排序:跟插...
  • yangchangyong0
  • yangchangyong0
  • 2016-01-18 13:56:14
  • 601

希尔排序的算法思想与实现

希尔排序基本思想:   先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2  该方法实质...
  • woshisap
  • woshisap
  • 2011-06-15 23:43:00
  • 3466

Java实现Shell排序算法

Shell排序算法
  • YHYR_YCY
  • YHYR_YCY
  • 2016-06-06 09:21:07
  • 783

PHP实现排序算法----希尔排序(Shell Sort)

基本思想:希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。操作步骤:先取一个小...
  • baidu_30000217
  • baidu_30000217
  • 2016-11-08 19:04:51
  • 1292

汇编实现排序——希尔排序

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 以下是汇编实现的代码:S0 S...
  • u010429311
  • u010429311
  • 2016-06-21 23:22:49
  • 2429

java五种内部排序(直接插入排序、希尔排序、快速排序、堆排序、归并排序)

实现直接插入排序、希尔排序、快速排序、堆排序、归并排序算法;并且输出各种排序算法每一趟排序的结果; 从键盘输入8个整数{ 12 , 45 , 21 , 12 , 30 , 2 , 68 , 33 }...
  • Dinivity123
  • Dinivity123
  • 2013-12-18 11:42:31
  • 1405
收藏助手
不良信息举报
您举报文章:JAVA实现排序-希尔排序
举报原因:
原因补充:

(最多只允许输入30个字)