数据结构 希尔排序

#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