用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


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

折半插入排序

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

[c]代码库

void InsertSort ( S_TBL *s )
{ /* 对顺序表s 作折半插入排序*/
	for ( i=2; i<=s->length; i++ )
	{
		s->elem[0]=s->elem[i]; /* 保存待插入元素*/
		low=i;
		high=i-1; /* 设置初始区间*/
		while ( low<=high ) /* 该循环语句完成确定插入位置*/
		{
			mid= ( low+high ) /2;
			if ( s->elem[0].key>s->elem[mid].key )
				low=mid+1; /* 插入位置在高半区中*/
			else high=mid-1; /* 插入位置在低半区中*/
		}/* while */
		for ( j=i-1; j>=high+1; j-- ) /* high+1 为插入位置*/
			s->elem[j+1]=s->elem[j]; /* 后移元素,留出插入空位*/
		s->elem[high+1]=s->elem[0]; /* 将元素插入*/
	}/* for */
}/* InsertSort */


网友评论    (发表评论)


发表评论:

评论须知:

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


扫码下载

加载中,请稍后...

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

加载中,请稍后...