#include<iostream>//引入输入输出流
#include<stdlib.h>//使用库函数srand和rand
#include<time.h>//使用库函数time
using namespace std;
const int Max=10;
void Creat(int r[],int n);
void ShellSort(int r[],int n);
int main()
{
int a[Max+1]={0},b[Max+1]={0};
int i=0;
Creat(a,Max);
for(i=1;i<=Max;i++)//将数组a复制一份到数组b
b[i]=a[i];
cout<<"对于无序序列:";
for(i=1;i<Max;i++)
cout<<b[i]<<" ";
cout<<endl;
ShellSort(a,Max);
cout<<"执行希尔排序后,元素为:";
for(i=1;i<Max;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void Creat(int r[],int n)
{
int i=0;
srand(time(NULL));
for(i=1;i<=n;i++)
r[i]=1+rand()%100;//待排序记录为二位数
}
void ShellSort(int r[],int n)
{int i,d,j;
for( d=n/2;d>=1;d=d/2)
{
for(i=d+1;i<=n;i++)
{
r[0]=r[i];
for( j=i-d;j>0&&r[0]<r[j];j=j-d)
r[j+d]=r[j];
r[j+d]=r[0];
}
}
}
数据结构 希尔排序
猜你喜欢
转载自blog.csdn.net/qq_40270751/article/details/78810355
今日推荐
周排行