shellsort.h

来自「八种排序算法」· C头文件 代码 · 共 29 行

H
29
字号

//希尔排序
//算法思想:把待排序的数据元素分成若干个小组,对同以小组内的数据元素用直接插入法排序;小组的个数逐次缩小;
//当完成了所有数据元素都在同一组内的排序后,排序过程结束。希尔排序又称缩小增量排序
//算法实现如下
void ShellSort(DataType a[],int n,int d[],int numOfD)
//d[0]--d[numOfD]为希尔增量
{
	int i,j,k,m,span;
	DataType temp;
	for(m=0;m<numOfD;m++)
	{
		span=d[m];
		for(k=0;k<span;k++)
		{
			for(i=k;i<n-span;i+=span)
			{
				temp=a[i+span];
				j=i;
				while (j>-1&&temp.key<=a[j].key)
				{
					a[j+span]=a[j];
					j=j-span;
				}
				a[j+span]=temp;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?