shell插入排序算法

前端之家收集整理的这篇文章主要介绍了shell插入排序算法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
/*shell插入排序算法的平均时间复杂度为O(n^1.3),
它为不稳定排序算法,
d为每次所分组数(初始为n/2)。
*/

#include <stdio.h>
int sum[1010];
int main()
{
	int n,i,j,d,temp;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&sum[i]);
	}
	d=n/2;
	while(d>=1)
	{
		for(i=d+1;i<=n;i++)
		{
			temp=sum[i];
			j=i-d;
			while(temp<sum[j]&&j>0)
			{
				sum[j+d]=sum[j];
				j-=d;
			}
			sum[j+d]=temp;
		}
		d/=2;
	}
	for(i=1;i<=n;i++)
		printf("%d ",sum[i]);
	printf("\n");
return 0;
}

猜你在找的Bash相关文章