package com.tw.ds.highsort;
/**
*
* <p>
* 算法学习---高级排序
* 希尔排序算法
* 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。
* 所有距离为dl的倍数的记录放在同一个组中。
* 先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,
* 直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。
* 该方法实质上是一种分组插入方法。
* </p>
* @author tangw 2010-11-26
*
*/
public class ShellSortMain {
/**
* @param args
*/
public static void main(String[] args) {
//数据变量
int [] ardata = {2,5,1,6,8,0,9,100,2};
//排序
shellSort(ardata);
//输出
for(int i=0;i<ardata.length;i++){
System.out.println("i="+i+" v="+ardata[i]);
}
}
/**
* <p>希尔排序方法</p>
* @param data
*/
public static void shellSort(int []data){//递减
int j;
for(int count=data.length/2;count>0;count/=2){
for(int y=count;y<data.length;y++){
int temp = data[y];
for(j=y;j>=count && temp>data[j-count];j-=count){
data[j] = data[j-count];
}
data[j] = temp;
}
}
}//end method shellSort
}
/**
* 排序前数据:2,5,1,6,8,0,9,100,2
* 排序后数据: 100,9,8,6,5,2,2,1,0
*
*
* */
分享到:
相关推荐
该资源是一个入门级别的C++算法练习,旨在帮助读者学习和理解希尔排序算法。文档中包含了希尔排序的基本原理和实现方法,并提供了详细的代码示例和解析。 通过学习和完成这个练习,读者将能够掌握希尔排序算法的...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
C#实现希尔排序算法.大家可以学习学习。
# sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把...
本资源包含《数据结构》考研的九种内部排序算法考点的算法代码及排序过程图示,以表格、图文方式详细讲解每一种...适用范围:考研党,想要学习排序算法的人员,在校大学生等。 资源难度:初级。(易于学习人员理解)
排序的基本概念以及其算法的种类,介绍几种常见的排序算法的算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序的算法和分析它们各自的复杂度,然后以表格的形式,清晰直观的表现出它们的复杂度的...
C++ 实现的一个简单的希尔排序的示例代码,写的比较简单,VC环境下运行通过了,给大家学习使用吧,直接copy进去运行就行了
这里提供8中排序算法中的希尔排序(最小增量排序),供大家学习参考
各种常用的排序算法,c++泛型实现,对于学习排序算法以及c++泛型编程都是很好的材料
Java数据结构与算法学习笔记之排序 冒泡排序,选择排序,插入排序,希尔排序, 归并排序, 快速排序.
数据结构-3期(KC002) 希尔排序算法.docx 学习资料 复习资料 教学资源
里面含有编程所用的大部分算法排序,包括冒泡排序,希尔排序,直接插入排序,快速排序,堆排序,简单选择排序,等等,适合刚入门的学习者
1.内部排序:使用8种内部排序算法(冒泡排序、插入排序、选择排序、希尔排序、快速排序、归并排序、基数排序、堆排序),对出版社信息按照指定关键字进行排序,分析其时空复杂度(在实验报告的总结与思考中会有相应...
个人原创总结的常用排序算法C语言示例代码解说PDF...包含有直接插入排序,折半插入排序,2路直接插入排序,起泡排序,简单选择排序,快速排序,堆排序,(希尔排序,归并排序,基数排序为空白),供学习排序算法的爱好者参考。
枚举算法,递归与分治策略,递归与迭代的思想、求最大值最小值、线性查找、二分查找与冒泡排序以及选择与交换排序、插入和希尔排序。本课程除了强调经典的算法理论和模型,亦兼顾编程实践能力。力图使得学员面对复杂...
本教程涵盖了十大经典排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序。通过对这些算法的详细讲解和代码实现,学生将能够深入理解排序算法的原理、...
使用 python 实现十种最常见的排序算法:选择排序、冒泡排序、插入排序、归并排序、桶排序、计数排序、基数排序、(随机)快速排序、希尔排序和堆排序算法。 适用于数据结构与算法的学习过程中,也是面试过程中常被...