用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

希尔排序

2012-10-11 作者: 神马举报

[c]代码库

void ShellInsert ( S_TBL &p,int dk )
{ /*一趟增量为dk 的插入排序,dk 为步长因子*/
	for ( i=dk+1; i<=p->length; i++ )
		if ( p->elem[i].key < p->elem[i-dk].key ) /*小于时,需elem[i]将插入有序表*/
		{
			p->elem[0]=p->elem[i]; /*为统一算法设置监测*/
			for ( j=i-dk; j>0&&p->elem[0].key < p->elem[j].key; j=j-dk )
				p->elem[j+dk]=p->elem[j]; /*记录后移*/
			p->elem[j+dk]=p->elem[0]; /*插入到正确位置*/
		}
}
void ShellSort ( S_TBL *p,int dlta[],int t )
{ /*按增量序列dlta[0,1…,t-1]对顺序表*p 作希尔排序*/
	for ( k=0; k<t; t++ )
		ShellSort ( p,dlta[k] ); /*一趟增量为dlta[k]的插入排序*/
}



网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...