閱讀868 返回首頁    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