(第5题)希尔排序(难度系数85)

题目描述1324:

希尔排序
描述

利用希尔排序算法实现线性表的排序。希尔排序是根据给定的增量序列将线性表分隔成某个“增量”的记录组成一个子序例,在子序列中采用直接插入排序完成。

输入

第一行为元素个数n(1<=n<=1000),第二行为n个元素值(整数),即需要排序的元素个数,第三行增量序列中增量个数m,第四行为m个增量,可以假定最后一个增量为1。

输出

对每一测试用例,用m行输出各增量进行希尔排序结果,用空格隔开。

样例输入
10
49 38 65 97 76 13 27 49 55 4
3
5 3 1

样例输出

13 27 49 55 4 49 38 65 97 76
13 4 49 38 27 49 55 65 97 76
4 13 27 38 49 49 55 65 76 97

#include

using namespace std;

const int N = 2010;

int a[N],b[N];
int n;

void shellsort(int t)
{
	for(int i=t;i=0 && temp>n;
	for(int i=0;i>a[i];
	
	int T;
	cin>>T;
	while(T--)
	{
		int t;
		cin>>t;
		shellsort(t);//每次输出前一个状态以t为增量开始排序一次后的a 
	}
}

你可能感兴趣的:(算法,数据结构,c++)