排序算法--希尔排序

1.简介

shellsort又称为最小增量排序。

使用增量序列h1,h2,...ht,在使用增量hk的一趟排序后,对于间隔为k的元素都是排序后的。

使用希尔增量排序时最坏运行时间为theta(N2)

增量序列通常的选择为:ht = N/2,hk = hk+1/2

2.实现

void shellsort(ElementType A[], int N)
{
	int i, j, Increment;
	ElementType Tmp;

	for (Increment = N / 2; Increment > 0; Increment /=2)
	{
		for (i = Increment; i < N; i++)
		{
			Tmp = A[i];
			for (j = i; j >= Increment; j -= Increment)
			{
				if (Tmp < A[j - Increment])
				{
					A[j] = A[j - Increment];
				}
				else
					break;
			}
			A[j] = Tmp;
		}
	}
}

  

原文地址:https://www.cnblogs.com/my-cat/p/5977792.html