数据结构实验之排序六:希尔排序
来源:互联网 发布:淘宝宝贝详情图片宽度 编辑:程序博客网 时间:2024/06/16 17:26
数据结构实验之排序六:希尔排序
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有序的少量数据记录进行排序的高效算法。你的任务是对于给定的数据进行希尔排序,其中增量dk=n/(2^k)(k=1,2,3……)
Input
连续输入多组数据,每组输入数据的第一行给出一个正整数N(N <= 10000),随后连续给出N个整数表示待排序关键字,数字间以空格分隔。
Output
输出dk=n/2和dk=1时的结果。
Example Input
1010 9 8 7 6 5 4 3 2 110-5 9 7 -11 37 -22 99 288 33 66
Example Output
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
#include<bits/stdc++.h>using namespace std;int a[10010],n;void shell(int dk){ int i,j; for(i=dk+1;i<=n;i++) { if(a[i]<a[i-dk]) { a[0]=a[i]; for(j=i-dk;j>0&&a[j]>a[0];j-=dk) { a[j+dk]=a[j];///往后移动 } a[j+dk]=a[0];///插入到正确位置 } }}int main(){ while(cin>>n) { for(int i=1;i<=n;i++) { cin>>a[i]; } shell(n/2); for(int i=1; i<=n; i++) printf("%d%c",a[i],i==n?'\n':' '); shell(1); for(int i=1;i<=n;i++) { printf("%d%c",a[i],i==n?'\n':' '); } } return 0;}
插入排序
#include<bits/stdc++.h>using namespace std;void qsort(int a[],int n){ int i,j; for(i=1;i<=n;i++) { if(a[i]<a[i-1]) { a[0]=a[i]; for( j=i-1;j>0&&a[j]>a[0];j--) { a[j+1]=a[j]; } a[j+1]=a[0]; } }}int main(){ int n,i,a[120]; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; } qsort(a,n); for(i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0;}
阅读全文
1 0
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 数据结构实验之排序六:希尔排序
- 小团队如何运营一款棋牌游戏
- java实现蓝桥回型取数
- C/C++的区别(默认值、内联函数、函数重载、const、引用、参数、返回值)
- JDK7之try-with-resources异常处理
- [Notice] 我的新博客 ryuzhihao.cc(CSDN也会更新)
- 数据结构实验之排序六:希尔排序
- 最大公因数
- 总结(12.11-12.21)
- Java swing实现的俄罗斯方块小游戏源码
- 删除工程中的.svn文件
- 手机连接设备的蓝牙向其发送子服务器局域网IP信息,从而esp8266与该服务器建立tcp连接
- ros打开笔记本摄像头,单目标定
- iOS开发网络篇 一一 NSURLSessionDownloadTask实现文件下载
- Date对象中追加format方法