阅读868 返回首页    go 阿里云 go 技术社区[云栖]


希尔排序【模板】

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

#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


最后更新:2017-04-03 14:53:58

  上一篇:go 最新java编程50题及答案
  下一篇:go 【菜鸟翻译】Creating an Android Project