(六)、排序算法:希尔排序

本文介绍了希尔排序的详细步骤,包括如何分组并进行插入排序,以及增量h的选定规则。首先,选定增量h,根据h对数据进行分组并进行插入排序。然后,逐步减小增量直至为1,重复排序过程。文章还提供了h初始值和循环规则的计算方法,并展示了代码运行结果。
摘要由CSDN通过智能技术生成

一、希尔排序的步骤

     1、选定一个增量h,按h作为分组的依据,对数据进行分组

     2、对分好组的每一组数据完成插入排序

     3、减小增量,最小为1,重复第2步

 

二、增量h的选定

      h初始值的选定规则:

      int h = 1;

    //计算h的初始值,num为数组的元素个数
    while (h < num / 2)
    {
        h = 2 * h + 1;
    }

    h的循环规则

    h = h/2;

 

三、代码和运行结果:

  


#include <iostream>

using namespace std;

void shell_sort(int arry[], int num)
{
	int h = 1;

	//计算h的初始值
	while (h < num / 2)
	{
		h = 2 * h + 1;
	}
	cout << "h=" << h << 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KiranWang

一起努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值