排序算法之希尔排序(C/C++)

从第一个数开始,判断第一个数和n/2那个数的大小,如果v[0]大于v[n/2]就交换,1与3比较,2与4比较,3与5比较...............


void shell_sort(char *str, int len)
{
   int group = 0, i = 0, j = 0, temp = 0;

   if ((NULL == str) || (0 >= len))
   {
       return ;
   }

   for (group = len / 2; group > 0; group /= 2)
   {
	   for (i = group; i < len; i++)
	   {
		   for (j = i - group; j >= 0; j -= group)
		   {
			   if (str[j] > str[j + group])
			   {
				   temp = str[j];
				   str[j] = str[j + group];
				   str[j + group] = temp;
			   }
		   }
	   }
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值