一,方法一
public void shellSort1(int[] a)
{
int d=a.length/2;
int temp;
int j;
while(d>=1)
{
for(int m=0;m<d;m++)
{
for(int i=d+m;i<a.length;i=i+d)
{
temp=a[i];
for(j=i-d;j>=0 && a[j]>temp;j=j-d)
a[j+d]=a[j];
a[j+d]=temp;
}
}
d=d/2;
}
}
二,方法二
public void shellSort(int[] a)
{
int d=a.length/2;
int temp;
while(d>=1)
{
for(int k=0;k<d;k++)
{
for(int i=d+k;i<a.length;i=i+d)
{
for(int j=i-d;j>=0;j=j-d)
{
if(a[i]<a[j])
{
temp=a[i];
for(int m=i-d;m>=j;m=m-d)
a[m+d]=a[m];
a[j]=temp;
}
}
}
}
d=d/2;
}
}
数据结构排序算法,C++版,参看地址http://www.cnblogs.com/mingcn/archive/2010/10/17/Sort.html#4
分享到:
相关推荐
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
binary sort,二分法查找,binary search, 二分法排序,merge sort 混合排序,shell sort 希尔排序,insertion sort 插入排序。数据结构 data structure
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序的C语言实现,原创。
8.12-8.19_冒泡_选择_插入_希尔_快速_归并_基数_堆排序_排序算法Swift代码及UI演示
数据结构 综合排序 冒泡排序 直接插入排序 快速排序 希尔排序,完整的代码,有每种排序时间的比较
直接插入排序、折半插入排序、希尔排列
随机生成小于5000的数 根据操作通过不同的方法排序 泡泡排序 直接插入排序 折半插入排序 希尔排序 直接选择排序 统计时间 比较次数和交换次数 保存为txt文件
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
用C++,模板写的 7中排序. 快速排序, 归并排序,插入排序,选择排序,起泡排序,堆排序,希尔排序
六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。
本实验含有四部分内容——直接插入排序、希尔排序、选择排序、快速排序,在上述内容的基础上,将所有排序算法整合在一个程序中。学生可参考教材中的伪代码。鼓励学生自创新思路,新算法。
10种排序算法代码+综合比较代码(直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、折半插入排序、2路插入排序),其中不仅有各种排序算法的代码,还包含10种代码在关键字...
希尔排序,堆排序,快速排序,简单选择排序,插入排序,冒泡排序
2、输出各种排序算法每一趟排序的结果,观察关键字次序的变化。 3、如果上述8个整数按照升序输入,即k1={ 2 , 12 , 12 , 21 , 30 , 33 , 45 , 68 },输出各种排序算法每一趟排序的结果,观察关键字次序的变化。 4...
希尔排序法,最经典的排序法,但不是容易懂。包括希尔插入排序,希尔交换排序
插入排序采用三种方法实现,希尔排序根据插入排序采用的方法不同,也有三种,但是又通过改进得到一种最为简介的实现方式。所有方法的实现在博客中:http://blog.csdn.net/ns_code/article/details/20043459中有详细...
C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
插入排序之希尔排序