希尔排序是在直接插入排序上改进而来。
1.以一个增量temp将要排序的数组进行分组,所以距离为temp的倍数的元素在同一个组;
2.对每一个组进行快速插入排序;
3.改变增量,从复以上操作;
4.直至增量等于1,结束。
实现代码如下:
//希尔排序 public class Demo32 { public static void main(String args[]){ int r[]={2,4,8,1,5,6,3,9,10,5,0,4,7}; fun(r); for(int i=0;i<r.length;i++){ System.out.print(r[i]+","); } int i=1; } public static void fun(int intArray[]){ int temp = intArray.length/2 ; //声明增量,以此为间隔将元素分组 int var; while(temp>0){ for(int i=temp;i<intArray.length;i++){ //对所有相隔为temp的元素进行直接插入排序 var = intArray[i]; int j=i-temp; while(j>=0&&intArray[j]>var){ intArray[j+temp]=intArray[j]; j=j-temp; } intArray[j+temp]=var; } temp=temp/2; //改变增量 } } }
您还没有登录,请您登录后再发表评论
NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1867491
《数据结构》严蔚敏版——希尔排序
本实验含有四部分内容——直接插入排序、希尔排序、选择排序、快速排序,在上述内容的基础上,将所有排序算法整合在一个程序中。学生可参考教材中的伪代码。鼓励学生自创新思路,新算法。
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
五种内部排序算法性能比较, 1....希尔排序。 4.归并排序。5.快速排序。分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。
数据结构讲义(严蔚敏版)(含算法源码) ...4. 希尔排序(缩小增量排序) 64 5. 起泡排序 65 6. 快速排序 66 7. 简单选择排序 67 8. 堆排序 68 9. 归并排序 71 10. 基数排序 72 11. 各种排序方法比较 73
包括: 堆排序.swf 规并排序.swf 基数排序.swf 快速排序.swf 冒泡排序.swf 桶式排序法.swf 希尔排序.swf 直接插入排序.swf 直接选择排序.swf
这是我当时上数据结构课时做的作业,自认为代码还是比较规范的,现在拿出来共享给大家,希望能对初学数据结构的同学有所帮助。
一、实验目的 1、掌握排序的不同方法,并能用高级语言实现排序算法 二、实验内容 1、实现希尔排序算法。
acm常用代码及算法,对我的帮助很大 ...希尔排序 3.选择法排序 4.二分查找 数据结构: 1.顺序队列 2.顺序栈 3.链表 4.链栈 5.二叉树 一、数学问题 1.精度计算——大数
数学问题: 1.精度计算——大数阶 乘 2.精度计算——乘法 (大数乘小数) 3.精度计算——乘法 (大数乘大数) 4....希尔排序 3.选择法排序 4.二分查找 数据结构: 1.顺序队列 2.顺序栈 3.链表 4.链栈 5.二叉树
cout<<"3、希尔排序"; cout、冒泡排序"; cout、快速排序"; cout、直接选择排序"; cout、堆排序"; cout、归并排序"; cout,and input the number:"; cin>>msg; switch (msg) { case 1: ...
2.希尔排序 3.选择法排序 4.二分查找 高精度运算专题: 1.本专题公共函数说明 2.高精度比较 3.高精度加法 4.高精度减法 5.高精度乘10 6.高精度乘单精度 7.高精度乘高精度 8.高精度除单精度 9.高精度除...
用flash方式演示各种数据结构基础算法3——排序部分,很直观,...里面包括:堆排序.swf,规并排序.swf,基数排序.swf,快速排序.swf,冒泡排序.swf,桶式排序法.swf,希尔排序.swf,直接插入排序.swf,直接选择排序.swf
(1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100(原始数据不少于100 ,可以用1000,这样方便测试出运行时间),表中数据随机产生,至少用5组不同...
1、Python3冒泡排序——交换类排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到...
数据结构课程设计 排序总结 (1)直接插入排序 (2)快速排序 (3)堆排序 (4)冒泡排序(5)希尔排序
主要介绍了数据结构中的排序方法!包括直接插入排序,折半插入排序,希尔排序,堆排序等等等等
相关推荐
NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1867491
《数据结构》严蔚敏版——希尔排序
本实验含有四部分内容——直接插入排序、希尔排序、选择排序、快速排序,在上述内容的基础上,将所有排序算法整合在一个程序中。学生可参考教材中的伪代码。鼓励学生自创新思路,新算法。
按下标的一定增量分组,对每组使用直接插入算法排序;随着增量 * 逐渐减少,每组包含的关键字越来越多,当增量减至1时,整个文件恰 * 好被分成一组,算法便终止。 * 8,9,1,7,2,3,5,4,6,0 * //初始增量 gap=...
五种内部排序算法性能比较, 1....希尔排序。 4.归并排序。5.快速排序。分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果。以c语言控制台画出的表格形式呈现。
数据结构讲义(严蔚敏版)(含算法源码) ...4. 希尔排序(缩小增量排序) 64 5. 起泡排序 65 6. 快速排序 66 7. 简单选择排序 67 8. 堆排序 68 9. 归并排序 71 10. 基数排序 72 11. 各种排序方法比较 73
包括: 堆排序.swf 规并排序.swf 基数排序.swf 快速排序.swf 冒泡排序.swf 桶式排序法.swf 希尔排序.swf 直接插入排序.swf 直接选择排序.swf
这是我当时上数据结构课时做的作业,自认为代码还是比较规范的,现在拿出来共享给大家,希望能对初学数据结构的同学有所帮助。
一、实验目的 1、掌握排序的不同方法,并能用高级语言实现排序算法 二、实验内容 1、实现希尔排序算法。
acm常用代码及算法,对我的帮助很大 ...希尔排序 3.选择法排序 4.二分查找 数据结构: 1.顺序队列 2.顺序栈 3.链表 4.链栈 5.二叉树 一、数学问题 1.精度计算——大数
数学问题: 1.精度计算——大数阶 乘 2.精度计算——乘法 (大数乘小数) 3.精度计算——乘法 (大数乘大数) 4....希尔排序 3.选择法排序 4.二分查找 数据结构: 1.顺序队列 2.顺序栈 3.链表 4.链栈 5.二叉树
cout<<"3、希尔排序"; cout、冒泡排序"; cout、快速排序"; cout、直接选择排序"; cout、堆排序"; cout、归并排序"; cout,and input the number:"; cin>>msg; switch (msg) { case 1: ...
2.希尔排序 3.选择法排序 4.二分查找 高精度运算专题: 1.本专题公共函数说明 2.高精度比较 3.高精度加法 4.高精度减法 5.高精度乘10 6.高精度乘单精度 7.高精度乘高精度 8.高精度除单精度 9.高精度除...
用flash方式演示各种数据结构基础算法3——排序部分,很直观,...里面包括:堆排序.swf,规并排序.swf,基数排序.swf,快速排序.swf,冒泡排序.swf,桶式排序法.swf,希尔排序.swf,直接插入排序.swf,直接选择排序.swf
(1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100(原始数据不少于100 ,可以用1000,这样方便测试出运行时间),表中数据随机产生,至少用5组不同...
1、Python3冒泡排序——交换类排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到...
数据结构课程设计 排序总结 (1)直接插入排序 (2)快速排序 (3)堆排序 (4)冒泡排序(5)希尔排序
主要介绍了数据结构中的排序方法!包括直接插入排序,折半插入排序,希尔排序,堆排序等等等等