(模板题)sdut 3403 数据结构实验之排序六:希尔排序(希尔排序)
来源:互联网 发布:什么是网络教学 编辑:程序博客网 时间:2024/05/22 14:56
数据结构实验之排序六:希尔排序
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有序的少量数据记录进行排序的高效算法。你的任务是对于给定的数据进行希尔排序,其中增量dk=n/(2^k)(k=1,2,3……)
输入
连续输入多组数据,每组输入数据的第一行给出一个正整数N(N <= 10000),随后连续给出N个整数表示待排序关键字,数字间以空格分隔。
输出
输出dk=n/2和dk=1时的结果。
示例输入
1010 9 8 7 6 5 4 3 2 110-5 9 7 -11 37 -22 99 288 33 66
示例输出
5 4 3 2 1 10 9 8 7 61 2 3 4 5 6 7 8 9 10-22 9 7 -11 37 -5 99 288 33 66-22 -11 -5 7 9 33 37 66 99 288
提示
完整代码→代码出处以及讲解
void shellsort3(int a[], int n) { int i, j, gap; for (gap = n / 2; gap > 0; gap /= 2) for (i = gap; i < n; i++) for (j = i - gap; j >= 0 && a[j] > a[j + gap]; j -= gap) Swap(a[j], a[j + gap]); }
来源
xam
示例程序
#include <stdio.h>int a[10000];void shell(int key,int n){ int i,i1,t; for(i=key;n>i;i++) { for(i1=i-key;i1>=0&&a[i1]>a[i1+key];i1=i1-key) { t=a[i1]; a[i1]=a[i1+key]; a[i1+key]=t; } }}int main(){ int n,i; while(scanf("%d",&n)!=EOF) { for(i=0;n>i;i++) { scanf("%d",&a[i]); } shell(n/2,n); printf("%d",a[0]); for(i=1;n>i;i++) { printf(" %d",a[i]); } printf("\n"); shell(1,n); printf("%d",a[0]); for(i=1;n>i;i++) { printf(" %d",a[i]); } printf("\n"); } return 0;} /**************************************Problem id: SDUT OJ 3403 Code Len: 778B Result: Accepted Take Memory: 276K Take Time: 0MS Submit Time: 2016-07-24 21:25:08 **************************************/
0 0
- (模板题)sdut 3403 数据结构实验之排序六:希尔排序(希尔排序)
- SDUT 3403 数据结构实验之排序六:希尔排序
- SDUT OJ 3403数据结构实验之排序六:希尔排序
- SDUT-3403 数据结构实验之排序六:希尔排序
- SDUT 数据结构实验之排序六:希尔排序
- sdut oj3403 数据结构实验之排序六:希尔排序
- 【希尔排序】数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 高并发限流(二)——应用举例
- android broadcastReceiver 常用的广播
- HTML——清单标记
- android背景音乐播放
- 敏捷实施的起点--需求分析的思考
- (模板题)sdut 3403 数据结构实验之排序六:希尔排序(希尔排序)
- 109. Convert Sorted List to Binary Search Tree
- 刚刚创建了个博客,明年买个。恩,就这样决定了。来,先试下!
- 简易使用POI导入导出excel文件
- 杭电acm——1982 Kaitou Kid - The Phantom Thief (1)
- MySQL安装过程中出现“APPLYsecuritysettings错误”的解决方案
- 栈和队列总结
- TTS—语音播报
- Jsp、Velocity、FreeMarker这三种模板引擎的区别