shell排序.txt
来自「里面包括了一些acm比赛是常用的函数」· 文本 代码 · 共 34 行
TXT
34 行
#include "iostream.h"
int d[]={13,11,7,5,3,2,1};
int n;//n为待排数组的长度
void shell(int s[],int dk)
{
int i;
for(i=dk+1;i<=n;i++)
if(s[i]<s[i-dk])
{
s[0]=s[i];
for(int j=i-dk;j>0&&s[0]<s[j];j=j-dk)
s[j+dk]=s[j];
s[j+dk]=s[0];
}
}
void shellsort(int s[],int n)
{
//按增量序列d[0,……,t-1]对顺序表s[1...n]作希尔排序
int t=7;
for(int k=0;k<t;k++)
shell(s,d[k]);
}
void main()
{
int s[100];
cout<<"输入数组长度 n:"<<endl;
cin>>n;
for(int i=1;i<=n;i++)
cin>>s[i];
shellsort(s,n);
for(i=1;i<=n;i++)
cout<<s[i]<<' ';
cout<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?