文章

145

粉丝

218

获赞

288

访问

109.4k

头像
西交-希尔排序 题解:C
P1829 西安交通大学机试
发布于2024年3月11日 13:20
阅读数 810

#include <stdio.h>

void ShellSort(int a[],int n)
{
	int i,j,dk;
	for(dk = n/2; dk >= 1; dk/=2)
		for(i = dk+1; i <= n; i++)
			if(a[i] < a[i-dk])
			{
				a[0] = a[i];
				for(j = i-dk; j > 0 && a[0] < a[j]; j-=dk)
					a[j+dk] = a[j];
				a[j+dk] = a[0];
			}
}

int main()
{
	int n,a[1001],i;
	scanf("%d",&n);
	for(i = 1; i <= n; i++)
		scanf("%d",&a[i]);
	ShellSort(a,n);
	for(i = 1; i <= n; i++)
		printf("%d ",a[i]);
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发