希尔排序【模板】

  1. 云栖社区>
  2. 博客>
  3. 正文

希尔排序【模板】

this_is_bill 2013-10-30 15:15:00 浏览477
展开阅读全文

希尔排序用了用了更少的时间编出来:

#include <iostream>

void Shellsort(int A[],int p,int r)
{
	int d=r-p+1;	//将 length(A) 赋给d

	int i,j,tmp;
	while(d>=1)
	{
		d/=2;
		for(i=p+d;i<=r;i++)
		{
			tmp=A[i];
			j=i-d;		//从i的前一个步长开始
			while(j>=p && tmp<A[j])
			{
				A[j+d]=A[j];	//记录后移
				j-=d;			//向前计数
			}

			A[j+d]=tmp;
		}
	}
}

int main()
{
	int A[6]={0,5,3,2,1,4};

	Shellsort(A,1,5);

	for(int i=1;i<=5;i++)
		printf("%d ",A[i]);

	return 0;
}

运行结果为:

1 2 3 4 5


网友评论

登录后评论
0/500
评论
this_is_bill
+ 关注